Entwickler stehen häufig vor der Herausforderung, Daten im Rahmen datengesteuerter Anwendungen in Echtzeit darzustellen. Allerdings tritt ein häufiges Problem auf, wenn versucht wird, Echtzeit-Plots innerhalb einer „while“-Schleife zu implementieren.
Betrachten Sie das folgende Beispiel, in dem wir zufällige Datenpunkte in Echtzeit mit OpenCV zeichnen möchten:
fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while i < 1000: temp_y = np.random.random() x.append(i) y.append(temp_y) plt.scatter(i, temp_y) i += 1 plt.show()
Leider gelingt es diesem Code nicht, die Punkte einzeln in Echtzeit darzustellen. Stattdessen wird die Ausführung des Programms angehalten, bis die Schleife abgeschlossen ist, bevor das Diagramm angezeigt wird.
Der Schlüssel zum Ermöglichen der Echtzeitdarstellung liegt im Aufruf der Funktion plt.pause(0.05) innerhalb der Schleife. Diese Funktion aktualisiert nicht nur den Plot mit den neuesten Daten, sondern führt auch die Ereignisschleife der GUI aus. Dies ermöglicht eine Benutzerinteraktion und stellt sicher, dass die Darstellung während der Ausführung der Schleife reaktionsfähig und interaktiv bleibt:
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()
Durch die Einbindung von plt.pause(0.05) schalten Sie die Möglichkeit frei, Datenpunkte in Echtzeit darzustellen. Zeit, sodass Sie Ihre Daten beim Einströmen visualisieren können.
Das obige ist der detaillierte Inhalt vonWie kann ich Echtzeit-Plots innerhalb einer While-Schleife in Python erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!