Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich in Matplotlib eine Echtzeitdarstellung von Daten innerhalb einer While-Schleife erreichen?

Wie kann ich in Matplotlib eine Echtzeitdarstellung von Daten innerhalb einer While-Schleife erreichen?

Susan Sarandon
Freigeben: 2024-12-15 12:10:11
Original
399 Leute haben es durchsucht

How Can I Achieve Real-Time Plotting of Data Within a While Loop in Matplotlib?

Echtzeitplotierung innerhalb einer While-Schleife

Beim Versuch, Daten aus einer Videoquelle in Echtzeit anzuzeigen, stoßen Benutzer häufig auf Schwierigkeiten Aktualisieren des Plots innerhalb einer While-Schleife. Ein typisches Problem besteht darin, dass der Plot statisch bleibt, bis die Schleife abgeschlossen ist. Dieses Problem ist auf die Methode zurückzuführen, die zum Anzeigen dynamischer Daten verwendet wird.

Im bereitgestellten Codeausschnitt:

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()
Nach dem Login kopieren

Die Schleife hängt Datenpunkte an, zeichnet einen einzelnen Punkt und ruft dann plt.show auf (). Allerdings blockiert plt.show() die GUI und verhindert, dass anderer Code ausgeführt wird, bis das Fenster manuell geschlossen wird, was zu verzögerten Aktualisierungen führt.

Um Echtzeit-Plots zu erreichen, ist es notwendig, plt.pause() zu verwenden . Hier ist eine überarbeitete Version:

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()
Nach dem Login kopieren

Die wichtigste Änderung ist das Hinzufügen von plt.pause(0.05) nach dem Zeichnen jedes Punkts. plt.pause() zeichnet die aktualisierten Daten und führt die Ereignisschleife der GUI aus. Das Argument 0,05 gibt eine Verzögerung von 50 Millisekunden an und gibt der GUI Zeit, den Punkt anzuzeigen und Benutzerinteraktionen (z. B. Schließen des Fensters) zu verarbeiten.

Dieser geänderte Code sollte sicherstellen, dass die Darstellung reibungslos in Echtzeit aktualisiert wird. Ermöglicht dem Benutzer die dynamische Visualisierung der Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich in Matplotlib eine Echtzeitdarstellung von Daten innerhalb einer While-Schleife erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage