Maison >développement back-end >Tutoriel Python >Comment optimiser les animations Matplotlib pour la collecte de données en temps réel ?

Comment optimiser les animations Matplotlib pour la collecte de données en temps réel ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-11 20:07:02521parcourir

 How to Optimize Matplotlib Animations for Real-Time Data Collection?

Animation de tracés Matplotlib : optimisation pour la collecte de données

Dans les applications de collecte de données, il est crucial de mettre à jour les tracés de manière dynamique sans redessiner l'intégralité du graphique. Cette optimisation améliore les performances, en particulier lors de la collecte de données sur des périodes prolongées.

Le problème : redessiner ou animation basée sur des intervalles ?

Traditionnellement, les mises à jour du tracé impliquaient soit d'effacer et de redessiner le tracé, soit de l'animer à intervalles fixes. Cependant, aucune des deux méthodes n’est idéale pour la collecte de données en temps réel. Le redessinage devient lent avec le temps, tandis que l'animation basée sur des intervalles ne parvient pas à mettre à jour le tracé rapidement lorsque les données arrivent.

La solution : ajout de points incrémentiels

Pour mettre à jour dynamiquement le tracé uniquement lorsque de nouvelles données sont reçues , pensez à utiliser l'API d'animation de matplotlib, en particulier la fonction FuncAnimation. Cette fonction vous permet de définir une fonction qui met à jour en permanence le tracé.

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

Dans cet exemple, hl est l'objet line et la fonction update_line étend ses données avec de nouveaux points de données. Lorsque de nouvelles données sont reçues, appelez simplement update_line pour mettre à jour le tracé de manière fluide et efficace.

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