Mise à jour dynamique des tracés dans Matplotlib sans redessins complets
Lors de la collecte de données à partir d'un port série et de leur traçage, il existe des inefficacités associées à la mise à jour commune méthodes. Effacer et redessiner l’intégralité de l’intrigue ou utiliser des animations chronométrées peut s’avérer peu pratique ou introduire des retards. Cet article présente une approche alternative qui permet des mises à jour incrémentielles du tracé uniquement lorsque de nouvelles données sont reçues.
Mises à jour incrémentielles du tracé
Matplotlib fournit une variété de techniques d'animation, notamment la Fonction FuncAnimation. Cette fonction permet l'animation d'une fonction spécifique dans le temps. Dans notre cas, nous pouvons utiliser cette fonction pour animer le processus d'acquisition de données.
Implémentation de la fonction de mise à jour
La méthode d'animation consiste à modifier la propriété "data" du objet tracé. Au lieu d'effacer l'écran ou la figure, nous pouvons simplement étendre la propriété data en ajoutant de nouveaux points de données aux points existants. Voici un exemple de fonction qui fait cela :
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()
Lorsque de nouvelles données arrivent du port série, appelez simplement la fonction update_line avec les nouvelles données. Cela mettra progressivement à jour l'intrigue sans entraîner la surcharge liée au redessin de la figure entière.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!