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