matplotlib: Plotting a graph against time

Durand durand1 at gmail.com
Sun Jul 20 09:57:10 EDT 2008


On Jul 20, 8:55 am, arsyed <ars... at gmail.com> wrote:
> On Jul 19, 3:09 pm, Durand <dura... at gmail.com> wrote:
>
> > Hi,
>
> > I'm trying to plot a simple graph against date or time using matplotlib. I've read about date_plot but I'm not really sure how to use it. At the moment, I have some data arranged into lists, where list1 contains x values (time) and list2 contains y values just like is needed for the normal plot function. The time values are simply the output of datetime.date.today(), etc which I don't mind changing the format of.
>
> > My question is, how do I plot the graph with list1 on the x axis and list2 on the y axis. Using plot and unixtime I get a very ugly scale as is to be expected so I want to know how to use the date_plot function efficiently. At the moment, I'm only concerned about the actual plotting but help with Locater Ticks (Months and Years) is also very appreciated.
>
> > Thanks a lot!
>
> I'm not sure if this is what you're looking for, but here's a quick
> sample that uses plot_date to plot some random values.
>
> import pylab, random
> from datetime import datetime, timedelta
>
> today = datetime.now()
>
> dates = [today + timedelta(days=i) for i in range(10)]
> values = [random.randint(1, 20) for i in range(10)]
> pylab.plot_date(pylab.date2num(dates), values, linestyle='-')

Oooh, this is almost what I want but I'm not really sure how I'd
incorporate this into real dates...
If I have a list of dates like ['2008-07-18 14:36:53.494013',
'2008-07-20 14:37:01.508990', '2008-07-28 14:49:26.183256'], how would
I convert it to a format that pylab can understand? When I tried
type(datetime.now()) it gave me datetime.datetime whereas the objects
in this list are strings...Am I doing something wrong here?



More information about the Python-list mailing list