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