在一个图中绘制不同的熊猫数据框[重复]

Posted

技术标签:

【中文标题】在一个图中绘制不同的熊猫数据框[重复]【英文标题】:Plotting different pandas dataframes in one figure [duplicate] 【发布时间】:2022-01-01 01:09:31 【问题描述】:

我正在尝试在一个图中绘制不同的数据框(每个数据框都是一个子图)。

我在做:

plt.figure(figsize=(20,20))

for i,name in enumerate(names):
    df = pd.read_excel(myPath+name)
    df['Datetime'] = pd.to_datetime(df['Datetime'])
    df = df.set_index('Datetime')
    
    plt.subplot(4, 1, i+1) # I have 4 dataframes
    df.plot()
plt.show()

但是我得到了这个……

我怎样才能正确地做到这一点?

谢谢!

【问题讨论】:

您介意提供完整的minimal reproducible example吗? 【参考方案1】:

df.plot 不能很好地集成到更复杂的绘图模式中。它更多地意味着在进行数据探索时从 Dataframe 中获取快速绘图的捷径。

因此,您最终创建了 4 个空子图和 4 个 df.plot()。我想前 3 个 df.plot 结果图被最后一个覆盖。这可能是由于 df.plot 的图形/轴处理超出了此问题的范围。

试试这样吧。

fig, axes = plt.subplots(4, 1)


for i,name in enumerate(names):
    df = pd.read_excel(myPath+name)
    df['Datetime'] = pd.to_datetime(df['Datetime'])
    df = df.set_index('Datetime')
    axes[i].plot(df)
    
plt.show()

有关正确使用子图的更多信息,请查看以下示例:https://matplotlib.org/3.1.0/gallery/subplots_axes_and_figures/subplots_demo.html

编辑:我误读了您的代码,我之前关于指定键的 cmets 可能是错误的。我现在更新了我的答案。希望对你有用

【讨论】:

你也可以使用df.plot(ax=axes[i])

以上是关于在一个图中绘制不同的熊猫数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫折线图中绘制多列[重复]

如何在 matplotlib 中绘制我的熊猫数据框 [重复]

熊猫移动平均线[重复]

在熊猫时间序列数据框中删除重复项

如何使用 Seaborn 并排绘制熊猫数据框的多组列

如何按列绘制数据框的多个字典?蟒蛇熊猫