Heim >Backend-Entwicklung >Python-Tutorial >Wie erreicht man Echtzeit-Plots in einer Matplotlib-While-Schleife?
Echtzeitplotierung in einer While-Schleife mit Matplotlib
In dieser Frage versucht der Benutzer, Daten in Echtzeit mit OpenCV und zu zeichnen matplotlib. Allerdings funktioniert die Echtzeitdarstellung nicht wie vorgesehen. Der Benutzer liefert ein vereinfachtes Beispiel, bei dem der Plot die Punkte nicht einzeln auffüllt, sondern stattdessen wartet, bis die Schleife beendet ist.
Um dieses Problem zu beheben, müssen wir verstehen, wie Matplotlib Plots in Echtzeit aktualisiert. Standardmäßig erwartet matplotlib einen Funktionsaufruf von plt.show(), um den Plot anzuzeigen und dann zu blockieren, bis das Plotfenster geschlossen wird. Dieses Verhalten verhindert, dass die Daten in Echtzeit dargestellt werden.
Die Lösung besteht darin, die Funktion plt.pause() zu verwenden. plt.pause(0.05) zeichnet die neuen Daten, führt die Ereignisschleife der GUI aus und hält die Darstellung für 0,05 Sekunden an. Dadurch kann die Darstellung in Echtzeit aktualisiert werden und auf Mausinteraktionen reagieren.
Hier ist der geänderte Code, der erfolgreich 10 Punkte in Echtzeit darstellt:
import numpy as np import matplotlib.pyplot as plt plt.axis([0, 10, 0, 1]) for i in range(10): y = np.random.random() plt.scatter(i, y) plt.pause(0.05) plt.show()
Mit dieser Anpassung wird die Darstellung aktualisiert Zeigen Sie jetzt jeden Punkt an, während er generiert wird, und ermöglichen Sie so eine Echtzeitvisualisierung.
Das obige ist der detaillierte Inhalt vonWie erreicht man Echtzeit-Plots in einer Matplotlib-While-Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!