Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich dynamische Diagramme in Echtzeit in Matplotlib?

Wie erstelle ich dynamische Diagramme in Echtzeit in Matplotlib?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 04:56:13366Durchsuche

How to Create Real-time Dynamic Plots in Matplotlib?

Dynamisches Aktualisieren des Diagramms in Matplotlib

Frage:

Wie kann ich ein Echtzeitdiagramm in der Matplotlib-Bibliothek von Python aktualisieren? und fügt Datenpunkte hinzu, sobald sie entstehen verfügbar?

Antwort:

Matplotlib bietet mehrere Methoden zum Animieren von Daten in Echtzeit. Ein empfohlener Ansatz für Ihr Szenario ist die Verwendung der Animations-API-Funktion FuncAnimation. Diese Funktion animiert eine Funktion in der Zeit, wobei Ihre Funktion diejenige sein kann, die zum Erfassen von Daten von der seriellen Schnittstelle verwendet wird.

Jede Animationsmethode aktualisiert normalerweise die Dateneigenschaft des gezeichneten Objekts. Diese Eigenschaft kann erweitert werden, um vorherige Punkte beizubehalten und gleichzeitig neuere hinzuzufügen.

Angesichts der unsicheren Datenankunftszeit können Sie eine Funktion wie die folgende implementieren:

import matplotlib.pyplot as plt
import numpy

hl, = plt.plot([], [])

def update_line(hl, new_data):
    hl.set_xdata(numpy.append(hl.get_xdata(), new_data))
    hl.set_ydata(numpy.append(hl.get_ydata(), new_data))
    plt.draw()

Rufen Sie einfach update_line mit auf empfangene Daten immer dann, wenn ein neuer Datenpunkt von der seriellen Schnittstelle abgerufen wird. Dieser Ansatz ermöglicht dynamische Diagrammaktualisierungen, ohne dass das gesamte Diagramm gelöscht oder neu gezeichnet werden muss.

Das obige ist der detaillierte Inhalt vonWie erstelle ich dynamische Diagramme in Echtzeit in Matplotlib?. 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