使用Python绘制日常曲线图

2 投票
2 回答
967 浏览
提问于 2025-04-16 11:48

我想制作一个每天的图表,显示小时和浓度的关系。我正在使用matplotlib和datetime模块。

当我写:

import datetime
from pylab import *
b = [datetime.time(12,0), datetime.time(13,0)]
c = [4,5]
plot(b,c)
show()

...它不太好使。

我必须使用datetime对象,而不是时间对象,才能制作这个图表:

a = [datetime.datetime(2005,5,10,12), datetime.datetime(2005,5,10,13)]
c = [4,5]
plot(a,c)
show()

但是我真的希望能用时间对象来制作这个图表...有没有什么好主意?

2 个回答

0

Time这个函数会返回秒数。

>>>print time.time()
1297696979.78

>>>print date.fromtimestamp(today)
2011-02-14

今天这个变量我设置成了当前的时间,也就是time.time()。我不太明白你为什么要把变量放进time()这个函数里。

3

你可以看看这个 matplotlib 的文档:

http://matplotlib.sourceforge.net/api/dates_api.html

问题在于,matplotlib 只会把日期时间对象转换成浮点数,而对 datetime.time 这种时间格式似乎没有相应的支持。

编辑:一种可能的解决办法是,先获取一个默认的日期(比如“今天”),然后把它和你想要的具体时间结合起来,如果你不在乎具体的日期的话:

import datetime
from pylab import *
d = datetime.date.today()
tt = [datetime.time(12,0), datetime.time(13,0)]
b = []
for t in tt:
    b.append(datetime.datetime.combine(d,t))
c = [4,5]
plot(b,c)
show()

撰写回答