Heim  >  Artikel  >  Backend-Entwicklung  >  Wie aktualisiere ich Matplotlib-Plots dynamisch mit Daten von einem seriellen Port?

Wie aktualisiere ich Matplotlib-Plots dynamisch mit Daten von einem seriellen Port?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-15 22:04:02122Durchsuche

How to Dynamically Update Matplotlib Plots with Data from a Serial Port?

Dynamisches Aktualisieren von Diagrammen in Matplotlib

Die Verwaltung der Datenvisualisierung in Echtzeit kann eine Herausforderung darstellen, insbesondere wenn nach Methoden gesucht wird, mit denen Diagramme effizient und ohne Behinderung aktualisiert werden können Leistung oder Abhängigkeit von unvorhersehbaren Zeitintervallen. Diese Untersuchung untersucht praktikable Lösungen für die dynamische Aktualisierung von Plots auf der Grundlage von Daten, die von einem seriellen Port empfangen werden.

Um die geäußerten Bedenken hinsichtlich der langsamen Leistung beim wiederholten Neuzeichnen des gesamten Plots auszuräumen, nutzt die folgende Lösung einen Animationsmechanismus in matplotlib um Daten rechtzeitig zu animieren:

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

# Call update_line when receiving data from the serial port to update the plot incrementally

Dieser Ansatz erweitert die vorhandenen Daten effizient, ohne sie komplett neu zeichnen zu müssen, und geht so auf die spezifische Notwendigkeit ein, das Diagramm nur dann zu aktualisieren, wenn neue Daten vorhanden sind erhalten.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Matplotlib-Plots dynamisch mit Daten von einem seriellen Port?. 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