Sypder:关闭绘图窗口后,如何再次显示pandas.plot(subplots = True)?

时间:2019-05-06 14:03:50

标签: python pandas matplotlib spyder

我已使用以下方法在整个熊猫数据框df上创建了子图

plots = df.plot(subplot=True, layout=(2,3))

在此之后,我将在Spyder的单独窗口中获得绘图。 但是,如果我关闭此窗口并想再次显示图,则无法执行。由于plots.show()被创建为numpy数组,因此plots不起作用。我查看了另外两个类似的帖子,但无法弄清楚。 1. Matplotlib: how to show plot again? 2. matplotlib show figure again

1 个答案:

答案 0 :(得分:2)

创建一个单独的图形和轴对象,并将轴传递到pandas.plot。这样可以使图形保持打开状态而不会阻塞代码。我喜欢这样,因为我可以更新图形并使用fig.canvas.draw后跟fig.show来显示更新。

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({x: range(5) for x in 'abcdef'})
fig, ax = plt.subplots()
df.plot(ax=ax, subplots=True, layout=(2,3))
fig.show()

enter image description here

然后,如果您关闭图形窗口,则可以通过再次调用fig.show将其恢复。您也可以像我之前提到的那样修改单个子图。

plots[0,0].axhline(3)
fig.canvas.draw()
fig.show()

enter image description here