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
Libérer: 2024-12-06 04:33:17
original
1031 Les gens l'ont consulté

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal