matplotlib: Plotting a graph against time

D

Durand

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!
 
A

arsyed

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='-')
 
D

Durand

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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top