【问题标题】:plotting two different dataframes on the same plot在同一个图上绘制两个不同的数据框
【发布时间】:2019-06-12 11:07:39
【问题描述】:

我试图在同一个图上绘制两个不同的数据框。但它只显示第二个。我有两个数据框:reconstructedexpected 具有相同的形状。我需要根据索引(idx)绘制它们。所以首先我需要根据每个索引对它们进行分区;这是由ts_rec = reconstructed.loc[idx]ts_exp = expected.loc[idx] 完成的。然后我应该绘制这两个新的数据框。他们每个人都有 28 列,所以我有 28 个布局=(7、4)的子图。问题是它只显示第二个(红色)时间序列,但我需要让它们都能够比较它们的值。我怎样才能解决这个问题?

ts_rec = reconstructed.loc[idx]
ts_exp = expected.loc[idx]
x = np.arange(ts_rec.shape[0])
ts_rec.plot(
    x=x, subplots=True, layout=(7, 4), lw=2, legend=False, 
    figsize=(12, 10), sharey=True, color='green')
ts_exp.plot(
    x=x, subplots=True, layout=(7, 4), lw=2, legend=False, 
    figsize=(12, 10), sharey=True, color='red')
pyplot.title("Timeseries id = %d" % idx)
pyplot.xlim(xmin=0)
pyplot.show()
pyplot.savefig(config['dir'] + 'ts_' + str(idx) + '.pdf')
pyplot.clf()

【问题讨论】:

    标签: python pandas dataframe matplotlib


    【解决方案1】:

    您只需存储第一个图中的ax 句柄并将其作为ax 参数传递给第二个图:

    plt_ax = ts_rec.plot(
        x=x, subplots=True, layout=(7, 4), lw=2, legend=False, 
        figsize=(12, 10), sharey=True, color='green')
    ts_exp.plot(
        ax=plt_ax, x=x, subplots=True, layout=(7, 4), lw=2, legend=False, 
        figsize=(12, 10), sharey=True, color='red')
    

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      相关资源
      最近更新 更多