Python 在同一图中绘制不同的数据帧

Python 在同一图中绘制不同的数据帧,python,matplotlib,pandas,Python,Matplotlib,Pandas,我有一份包含多年温度记录的温度文件,格式如下: 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 20

我有一份包含多年温度记录的温度文件,格式如下:

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
每年都有不同的记录数量、时间,所以熊猫的日期时间指数都是不同的

我想在同一个图中绘制不同年份的数据,以便进行比较。X轴是一月到十二月,Y轴是温度。我该怎么做呢

试试看:

ax = df1.plot()
df2.plot(ax=ax)

尽管Chang的回答解释了如何在同一个图形上多次绘图,但在这种情况下,使用a和ing可能会更好:

(假设您在dataframe中有这个,并且datetime索引已经存在)

现在很容易绘制(每年作为一条单独的线):


如果您有一个正在运行的Jupyter/Ipython笔记本,并且在使用时遇到问题

ax=df1.plot()

df2.绘图(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)

只是为了增强@adivis12答案,您不需要执行
if
语句。这样说:

fig, ax = plt.subplots()
for BAR in dict_of_dfs.keys():
    dict_of_dfs[BAR].plot(ax=ax)

如果是在ipython笔记本上,如何实现?是否有一个保持或显示功能,仅在设置了所有设置后才打印图形?设置导入位置,以便在iPython笔记本中显示可视化效果。任何有关此功能的线索都是有3个以上的数据帧?这太神奇了。我将回答如何处理3个以上的dfs您确定这适用于任何类型的
plot()
,即任何类型的规范作为参数传递到
plot
函数中时?谢谢,但您真的可以对dfs进行分类吗?它不是不可保存的吗?但是dict of of of dfs只有字符串作为键。所以它们是可散列的。
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)
fig, ax = plt.subplots()
for BAR in dict_of_dfs.keys():
    dict_of_dfs[BAR].plot(ax=ax)