为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕村9548890 2019-12-11 13:09:23
我有一个具有多年温度记录的温度文件,格式如下:2012-04-12,16:13:09,20.62012-04-12,17:13:09,20.92012-04-12,18:13:09,20.62007-05-12,19:13:09,5.42007-05-12,20:13:09,20.62007-05-12,20:13:09,20.62005-08-11,11:13:09,20.62005-08-11,11:13:09,17.52005-08-13,07:13:09,20.62006-04-13,01:13:09,20.6每年的记录数量和时间都不同,因此熊猫的datetimeindices都不同。我想在同一图中绘制不同年份的数据以进行比较。X轴为1月至12月,Y轴为温度。我应该怎么做呢?
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

但是在这种情况下,使用a groupby和unstacking 可能会更好:


(假设您已经在数据框中使用了日期时间索引)


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()



查看完整回答
反对 回复 2019-12-12
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

如果您正在运行Jupyter / Ipython笔记本并且在使用时遇到问题;


ax = df1.plot()


df2.plot(ax=ax)


在同一单元格内运行命令!由于某些原因,当它们分成顺序的单元格时,它将无法工作。至少对我来说。



查看完整回答
反对 回复 2019-12-12
?
青春有我

TA贡献1784条经验 获得超8个赞

要对多个数据框执行此操作,可以对其进行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)



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 262 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信