在同一个图中绘制不同的DataFrame
我有一个多年温度logging的温度文件,格式如下:
2012-04-12,16:13:09,20.6 2012-04-12,17:13:09,20.9 2012-04-12,18:13:09,20.6 2007-05-12,19:13:09,5.4 2007-05-12,20:13:09,20.6 2007-05-12,20:13:09,20.6 2005-08-11,11:13:09,20.6 2005-08-11,11:13:09,17.5 2005-08-13,07:13:09,20.6 2006-04-13,01:13:09,20.6
每年有不同的数字,logging的时间,所以pandas的date时间指标都是不同的。
我想绘制同一图中不同年份的数据进行比较。 X轴是从1月到12月,Y轴是温度。 我应该怎么做呢?
虽然Chang的答案解释了如何在同一个图上多次绘制,在这种情况下,在这种情况下使用groupby
和unstack
可能会更好:
(假设你在数据框中有这个date时间索引)
In [1]: df Out[1]: value datetime 2010-01-01 1 2010-02-01 1 2009-01-01 1 # create additional month and year columns for convenience df['Month'] = map(lambda x: x.month, df.index) df['Year'] = map(lambda x: x.year, df.index) In [5]: df.groupby(['Month','Year']).mean().unstack() Out[5]: value Year 2009 2010 Month 1 1 1 2 NaN 1
现在很容易绘制(每年作为一个单独的行):
df.groupby(['Month','Year']).mean().unstack().plot()
尝试:
ax = df1.plot() df2.plot(ax=ax)
如果你正在运行的Jupyter / Ipython笔记本,并有问题使用;
ax = df1.plot()
df2.plot(ax=ax)
在同一个单元格内运行命令! 由于某种原因,当它们被分成连续的单元格时,它不会工作。 至less对我来说。