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

zer*_*vty 9 python matplotlib

您好我正在绘制一个函数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)
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在10个不同的窗口同时生成10个图吗?

Imp*_*est 12

数字的索引是从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()
Run Code Online (Sandbox Code Playgroud)

这将在脚本末尾创建所有10个窗口.