2016-10-12 9 views
0

eine aktualisierte Abbildung innerhalb einer Schleife Betrachten sie gemäß dem folgenden Code:waitforbuttonpress() matplotlib mögliche Fehler

import matplotlib.pyplot as plt 

def fun_example(): 

    plt.ion() 
    for ite in range(3): 
     x = np.linspace(-2,6,100) 
     y = (ite+1)*x 

     figura = plt.figure(1) 
     plt.plot(x,y,'-b') 
     plt.waitforbuttonpress() 
     plt.close() 
    #endfor ite 

#enddef fun_example 

if __name__ == '__main__': 
    fun_example() 
#endif main 

Die Idee ist, die Figur mit der Maus (zum Beispiel zu prüfen, während der Zoom-Option Debuggen in die Symbolleiste der Figur), und sobald es fertig ist, drücken Sie eine Taste, um mit dem Code fortzufahren. Zumindest in meinem Fall (Windows 7, Python 3.4.4, Spyder 3.0.0dev), wenn ich beabsichtige, in den Graphen zum Zoomen mit der Maus zu klicken, ist der Effekt derselbe wie der Drücken-Knopf. Mit anderen Worten: waitforbuttonpress() gibt zurück True, und die Zahl ist weg.

Irgendwelche Vorschläge? könnte es ein Fehler sein? Vielen Dank im Voraus.

Antwort

2

Gemäß the documentation, .waitforbuttonpress() wird True zurückgegeben, wenn eine Taste gedrückt wurde, und False, wenn eine Maustaste gedrückt wurde. Daher, was Sie wollen, ist wahrscheinlich so etwas wie folgt:

while True: 
    if plt.waitforbuttonpress(): 
     break 
+0

Vielen Dank für die Antwort. Ich habe die Dokumentation gesehen und leider ist der Punkt, dass die Funktion * waitforbuttonpress() * * True * zurückgibt, wenn man auf die Grafikkurve klickt. –

+0

Ich habe versucht, meinen eigenen Kommentar zu löschen, aber ich weiß nicht, wie es geht. Entschuldigung, Sie haben Recht. Danke für die Hilfe. Ich dachte, es würde * True * ergeben, solange das Warten trotz der Rückkehr vorbei war. * Falsch * –