Maison >développement back-end >Tutoriel Python >Comment réaliser un traçage en temps réel dans une boucle While Matplotlib ?

Comment réaliser un traçage en temps réel dans une boucle While Matplotlib ?

DDD
DDDoriginal
2024-12-06 04:33:17996parcourir

How to Achieve Real-Time Plotting in a Matplotlib While Loop?

Traçage en temps réel dans une boucle While avec Matplotlib

Dans cette question, l'utilisateur tente de tracer des données en temps réel à l'aide d'OpenCV et matplotlib. Cependant, le traçage en temps réel ne fonctionne pas comme prévu. L'utilisateur fournit un exemple simplifié dans lequel le tracé ne remplit pas les points un par un, mais attend plutôt la fin de la boucle.

Pour résoudre ce problème, nous devons comprendre comment matplotlib met à jour les tracés en temps réel. Par défaut, matplotlib attend un appel de fonction à plt.show() pour afficher le tracé, puis le bloquer jusqu'à ce que la fenêtre du tracé soit fermée. Ce comportement empêche le tracé des données en temps réel.

La solution est d'utiliser la fonction plt.pause(). plt.pause(0.05) dessine les nouvelles données, exécute la boucle d'événements de l'interface graphique et met le tracé en pause pendant 0,05 seconde. Cela permet au tracé de se mettre à jour en temps réel et de répondre aux interactions de la souris.

Voici le code modifié qui trace avec succès 10 points en temps réel :

import numpy as np
import matplotlib.pyplot as plt

plt.axis([0, 10, 0, 1])

for i in range(10):
    y = np.random.random()
    plt.scatter(i, y)
    plt.pause(0.05)

plt.show()

Avec cet ajustement, le tracé sera affichez désormais chaque point au fur et à mesure de sa génération, permettant une visualisation en temps réel.

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