Maison >développement back-end >Tutoriel Python >Comment créer des tracés dynamiques en temps réel dans Matplotlib ?

Comment créer des tracés dynamiques en temps réel dans Matplotlib ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-24 04:56:13366parcourir

How to Create Real-time Dynamic Plots in Matplotlib?

Mise à jour dynamique du tracé dans Matplotlib

Question :

Comment puis-je mettre à jour un tracé en temps réel dans la bibliothèque Matplotlib de Python , en ajoutant des points de données au fur et à mesure qu'ils deviennent disponible ?

Réponse :

Matplotlib propose plusieurs méthodes pour animer des données en temps réel. Une approche recommandée pour votre scénario consiste à utiliser la fonction API d’animation FuncAnimation. Cette fonction anime une fonction dans le temps, votre fonction pouvant être celle utilisée pour acquérir les données du port série.

Chaque méthode d'animation met généralement à jour la propriété de données de l'objet dessiné. Cette propriété peut être étendue pour conserver les points précédents tout en en ajoutant de nouveaux.

Étant donné l'heure d'arrivée des données incertaine, vous pouvez implémenter une fonction comme la suivante :

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

Appelez simplement update_line avec le données reçues chaque fois qu'un nouveau point de données est obtenu à partir du port série. Cette approche permet des mises à jour dynamiques du tracé sans avoir besoin d'effacer ou de redessiner l'intégralité du graphique.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn