2017-02-24 7 views
2

Hallo Ich zeichne eine Funktion 10 mal und drucke auch die separaten Werte. Ich wollte auch alle 10 Fälle separat in separaten Fenstern plotten.Ist es möglich, mehrere Diagramme in separaten Fenstern mit matplotlib anzuzeigen?

Also habe ich eine neue for loop für das Plotten erstellt, die immer noch nur die erste Instanz plotten und sobald ich die erste schließe, erst dann kann ich die zweite sehen.

Ich habe auch versucht, plt.hold(true) zu verwenden.

Hier ist, was ich

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) 

Gibt es eine Weise, die ich erzeugen konnte 10 Plots gleichzeitig in 10 verschiedenen Fenstern zu tun- versucht?

Antwort

4

Figuren haben einen Index plt.figure(n) wo n eine Reihe an 1 Start ist.
Dies ermöglicht es, später eine bereits erstellte Figur zu aktivieren, um neue Sachen darauf zu zeichnen, aber es erlaubt auch, mehrere Figuren in einer Schleife zu erstellen.

Um alle Bilder gleichzeitig anzuzeigen, verwenden Sie plt.show() ganz am Ende. Diese erstellen alle 10 Fenster am Ende des Skripts
In diesem Fall würden Sie

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

tun.

0

Sie können neue Zahlenfenster erstellen, indem Sie einen neuen Zahlenindex angeben, z. B. plt.figure(10). In Ihrem Fall können Sie:

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

Also ist es wie für 10 verschiedene Figuren ich sollte plt.figure (1), pt.figure (2) .... und so weiter machen? – zerogravty

+0

Verwenden Sie Ihre Loop-Variable: siehe bearbeiten – Julien

+0

ahh richtig das jetzt versuchen. Vielen Dank :) – zerogravty

Verwandte Themen