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
Susan SarandonOriginal
2024-12-15 12:10:11399Durchsuche

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()

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()

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!

Stellungnahme:
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