matplotlib 是否可以在单独的窗口中显示多个图?

9rnv2umw  于 2023-11-22  发布在  其他
关注(0)|答案(2)|浏览(158)

你好,我正在绘制一个函数10次,并打印单独的值。我还想在单独的窗口中分别绘制所有10个案例。
因此,我创建了一个新的for loop用于绘图,它仍然只绘制第一个示例,一旦我关闭第一个示例,只有这样我才能看到第二个示例。
我也试过使用plt.hold(true)
我试着这么做-

def signal():
    t1 = np.random.choice(candidates)
    t2 = np.random.choice(candidates)
    t3 = np.random.choice(candidates)
    t4 = np.random.choice(candidates)
    t5 = np.random.choice(candidates)
    y = a * np.exp(-t /t1) + a * np.exp(-t /t2) + a * np.exp(-t /t3) + a * np.exp(-t /t4) + a * np.exp(-t /t5)
return y

for i in range(nsets):
    signalset = []
    signalset.append(signal())
    print(signal())

for i in range (nsets):
    plt.plot(t, signal())
    plt.show()
    plt.hold(True)

字符串
有没有办法在10个不同的窗口中同时生成10个图?

k4ymrczo

k4ymrczo1#

数字的索引为plt.figure(n),其中n是从**1**开始的数字。
这允许以后激活一个已经创建的图形来绘制新的东西,但它也允许在一个循环中创建多个图形。
为了同时显示所有图像,请在最后使用plt.show()。
在这种情况下,

for i in range(10):
    plt.figure(i+1) #to let the index start at 1
    plt.plot(t, signal())
plt.show()

字符串
这将在脚本末尾创建所有10个窗口。

vxf3dgd4

vxf3dgd42#

您可以通过指定新的地物索引(例如plt.figure(10))来创建新的地物窗口。在您的情况下,您可以用途:

for i in range (nsets):
    plt.figure(i) # choose figure i to be the current figure (create it if not already existing)
    plt.plot(t, signal())
    plt.show()
    plt.hold(True)

字符串

相关问题