【问题标题】:Pandas.plot Multiple plot same figurePandas.plot Multiple 绘制相同的图
【发布时间】:2020-11-11 01:31:23
【问题描述】:

我有多个 CSV 文件,我试图将它们绘制在同一个图中,以便在它们之间进行比较。我已经阅读了一些关于熊猫问题的信息,即不保留内存图并每次都创建新的。人们在谈论使用 ax var,但我不明白...

现在我有:

def scatter_plot(csvfile,param,exp):
    for i in range (1,10):
        df = pd.read_csv('{}{}.csv'.format(csvfile,i))
        ax = df.plot(kind='scatter',x=param,y ='Adjusted')
        df.plot.line(x=param,y='Adjusted',ax=ax,style='b')
    plt.show()
    plt.savefig('plot/{}/{}'.format(exp,param),dpi=100)

但它向我展示了十个情节,只保存了最后一个情节。 有什么想法吗?

【问题讨论】:

  • (1) plt.savefig 必须在 plt.show 之前。 (2) plt.show() 应该在循环之外。 (3)您可以创建一个轴以绘制到循环之外,ax=plt.gca(); for i in range(1,10): ... df.plot(ax=ax)
  • 还是不明白

标签: python pandas matplotlib plot


【解决方案1】:

结构是

  1. 创建要绘制到的坐标区
  2. 运行循环来填充坐标区
  3. 保存和/或显示(显示前保存)

在代码方面:

import matplotlib.pyplot as plt
import pandas as pd

ax = plt.gca()
for i in range (1,10):
    df = pd.read_csv(...)
    df.plot(..., ax=ax)
    df.plot.line(..., ax=ax)

plt.savefig(...)
plt.show()

【讨论】:

  • 非常感谢。剩下的一件事是,当我保存图形时,它只选择最后一个。只有图一拥有全部情节。
  • 在我回答的代码中只有一个数字,并且该数字已保存。
  • 奇怪的是使用完全相同的代码一直显示 10 个数字。
  • 好吧,它忘记了第一个情节的 ax=ax。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 2020-05-11
  • 2015-03-03
  • 2020-01-27
相关资源
最近更新 更多