Maison >développement back-end >Tutoriel Python >Comment puis-je mettre à jour efficacement les tracés Matplotlib avec de nouvelles données ?

Comment puis-je mettre à jour efficacement les tracés Matplotlib avec de nouvelles données ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 18:38:12274parcourir

How Can I Efficiently Update Matplotlib Plots with New Data?

Mise à jour des tracés dans Matplotlib

Lorsque vous travaillez avec des tracés interactifs dans Matplotlib, il est souvent nécessaire de mettre à jour le tracé avec de nouvelles données. Ceci peut être réalisé de deux manières :

Option 1 : Effacer et retracer

Cette approche consiste à effacer l'intrigue existante et à la redessiner à partir de zéro. Pour ce faire :

  1. Appelez graph1.clear() et graph2.clear() pour supprimer les données actuelles.
  2. Recalculez et tracez les nouvelles données comme avant.

Bien que cette méthode soit simple, c'est aussi la plus lente.

Option 2 : Mettre à jour Données

Pour éviter de retracer l'intégralité du graphique, vous pouvez directement mettre à jour les données des objets de tracé existants. C'est beaucoup plus rapide, mais nécessite :

  1. Modifier votre code pour séparer la logique de traçage de la logique d'acquisition de données.
  2. Assurer que la forme des données reste constante.
  3. Réinitialisation manuelle des limites des axes x et y si la plage de données changements.

Exemple :

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 6*np.pi, 100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'r-')

for phase in np.linspace(0, 10*np.pi, 500):
    line1.set_ydata(np.sin(x + phase))
    fig.canvas.draw()
    fig.canvas.flush_events()

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