Maison >développement back-end >Tutoriel Python >Comment puis-je mettre à jour efficacement les tracés Matplotlib sans retracer ?

Comment puis-je mettre à jour efficacement les tracés Matplotlib sans retracer ?

DDD
DDDoriginal
2024-12-03 05:05:13820parcourir

How Can I Efficiently Update Matplotlib Plots Without Replotting?

Mettre à jour efficacement les tracés Matplotlib

Pour mettre à jour les tracés dans Matplotlib tout en évitant les tracés répétés, envisagez les options suivantes :

1. Effacement et retraçage avec la méthode Clear

Appelez graph1.clear() et graph2.clear() avant de redessiner le tracé. Cela garantit une table rase, mais peut être lent.

2. Mise à jour des données des objets de tracé

Mettez à jour les données des objets de tracé existants au lieu de les retracer entièrement. C'est plus rapide, mais nécessite que la forme des données reste constante. Un ajustement manuel de la limite de l'axe peut être nécessaire.

Pour démontrer la deuxième option :

import matplotlib.pyplot as plt
import numpy as np

# Define initial data
x = np.linspace(0, 6*np.pi, 100)
y = np.sin(x)

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

# Iterate through phases and update data
for phase in np.linspace(0, 10*np.pi, 500):
    line1.set_ydata(np.sin(x + phase))
    fig.canvas.draw()
    fig.canvas.flush_events()

Cette méthode met à jour efficacement les données du tracé en temps réel sans redessiner l'intégralité du tracé.

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