2017-02-24 5 views
2

こんにちは私は関数を10回プロットしており、別々の値も表示しています。 私はまた、10のすべてのケースを別々のウィンドウに別々にプロットしたいと思っていました。matplotlibを使用して複数のプロットを別々のウィンドウに表示することはできますか?

プロットのためにまだ最初のインスタンスだけをプロットしていて、最初のインスタンスを閉じると、2番目のインスタンスが表示されるように、新しい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個のプロットを生成することができますどのような方法がありますがDO-しようとした何ですか?

答えて

4

数値はn1から始まる番号であるインデックスplt.figure(n)を持っています。
これで、後で作成したFigureをアクティブにして新しいものをプロットすることができますが、ループ内に複数のFigureを作成することもできます。

すべての画像を同時に表示するには、最後にplt.show()を使用します。あなたはこれがスクリプトの最後に、すべての10個のウィンドウを作成

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

にしてください。この場合

0

plt.figure(10)のように新しいFigureインデックスを指定することで、新しいFigureウィンドウを作成できます。あなたのケースでは、使用することができます。

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) 
+0

これは10の異なる数字のようです私はplt.figure(1)、pt.figure(2)....などを行う必要がありますか? – zerogravty

+0

ループ変数を使用してください:編集 – Julien

+0

を参照してください。ありがとうございました :) – zerogravty

関連する問題