在同一图中绘制不同的数据框

我有一个具有多年温度记录的温度文件,格式如下:


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

每年的记录数量和时间都不同,因此熊猫的datetimeindices都不同。


我想在同一图中绘制不同年份的数据以进行比较。X轴为1月至12月,Y轴为温度。我应该怎么做呢?



慕村9548890
浏览 265回答 3
3回答

慕无忌1623718

但是在这种情况下,使用a groupby和unstacking 可能会更好:(假设您已经在数据框中使用了日期时间索引)In [1]: dfOut[1]:            value  datetime                         2010-01-01      1  2010-02-01      1  2009-01-01      1  # create additional month and year columns for conveniencedf['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  2010Month             1          1     12        NaN     1现在很容易绘制(每年作为单独的一行):df.groupby(['Month','Year']).mean().unstack().plot()

呼啦一阵风

如果您正在运行Jupyter / Ipython笔记本并且在使用时遇到问题;ax = df1.plot()df2.plot(ax=ax)在同一单元格内运行命令!由于某些原因,当它们分成顺序的单元格时,它将无法工作。至少对我来说。

青春有我

要对多个数据框执行此操作,可以对其进行for循环:fig = plt.figure(num=None, figsize=(10, 8))ax = dict_of_dfs['FOO'].column.plot()for BAR in dict_of_dfs.keys():    if BAR == 'FOO':        pass    else:        dict_of_dfs[BAR].column.plot(ax=ax)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java