可以有多个PyPlot窗口吗?还是只限于子图?

56 投票
4 回答
112496 浏览
提问于 2025-04-16 17:34

我不太确定该怎么更清楚地表达我的问题。简单来说,PyPlot是不是只能打开一个窗口?我尝试的任何方法要么让我的程序卡住,要么第二个PyPlot窗口只能等第一个关闭后才能打开。

4 个回答

6

你的问题的答案是否定的。你可以打开任意数量的窗口。首先,每当你想要一个新的图形时,只需输入

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()
14

使用 plt.figure() 并指定一个数字,这样窗口的大小就固定了:

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

如果要画另一个图,就用一个不同的数字:

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

当然,可以打开一个新的图形窗口:

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解释器中运行这个,可能会出现问题,因为每个图形窗口都需要进入图形界面的主循环。如果你想在一个可以互动的环境中运行,可以试试IPython。如果你只是正常运行这个代码(也就是把它放到一个文件里,然后用python filename.py来执行),那就没问题了。

撰写回答