我正在尝试在同一图上绘制两个不同的数据框。但是它只显示第二个。我有两个数据框:reconstructed
和expected
,它们的形状相同。我需要根据索引(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()
答案 0 :(得分: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')