是否可以有多个PyPlot窗口?或者我只限于次要情节?

时间:2011-05-13 14:13:40

标签: python matplotlib plot interpreter hang

我不确定如何更清楚地说出我的问题。基本上,PyPlot是否仅限于一个实例/窗口?我尝试的任何黑客或变通方法都会导致我的程序冻结或第二个pyplot窗口排队,直到第一个关闭。

4 个答案:

答案 0 :(得分:51)

当然,只需打开一个新的数字:

import matplotlib.pyplot as plt

plt.plot(range(10))

plt.figure()
plt.plot(range(10), 'ro-')

plt.figure(), plt.plot(...)

plt.show() # only do this once, at the end

如果你在默认的python解释器中运行它,这将无法工作,因为每个数字都需要输入gui的mainloop。如果您想在交互式shell中运行,请查看IPython。如果您只是正常运行(即将其放入文件并调用python filename.py),它将正常工作。

答案 1 :(得分:6)

使用plt.figure()并使用特定数字,以便修复窗口:

plt.figure(200)
plt.plot(x)
plt.show()

对于另一个情节,请使用不同的数字:

plt.figure(300)
plt.plot(y)
plt.show()

答案 2 :(得分:1)

您可以使用 pyplot.show 属性来实现

示例:

plt.show(block=False)

答案 3 :(得分:-1)

你的问题的答案是否定的。您可以拥有任意数量的窗口。首先,只需输入

即可
plt.figure(n) #n must be a different integer for every window

为你想要的每一个新人物。其次,写

plt.show()

只有一次(!)在您要绘制的所有内容的末尾。以下是两个直方图的示例:

plt.figure(1)
plt.hist(dataset1)
plt.figure(2)
plt.hist(dataset2)
plt.show()