Maison > développement back-end > Tutoriel Python > Comment puis-je réaliser un tracé de données en temps réel dans une boucle While dans Matplotlib ?

Comment puis-je réaliser un tracé de données en temps réel dans une boucle While dans Matplotlib ?

Susan Sarandon
Libérer: 2024-12-15 12:10:11
original
399 Les gens l'ont consulté

How Can I Achieve Real-Time Plotting of Data Within a While Loop in Matplotlib?

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

Lorsqu'ils tentent d'afficher les données d'une source vidéo en temps réel, les utilisateurs rencontrent souvent des difficultés mettre à jour l'intrigue dans une boucle while. Un problème typique est que l'intrigue reste statique jusqu'à ce que la boucle soit terminée. Ce problème provient de la méthode utilisée pour afficher les données dynamiques.

Dans l'extrait de code fourni :

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()
Copier après la connexion

La boucle ajoute des points de données, trace un seul point, puis appelle plt.show (). Cependant, plt.show() bloque l'interface graphique et empêche l'exécution d'autres codes jusqu'à ce que la fenêtre soit fermée manuellement, ce qui entraîne des mises à jour retardées.

Pour réaliser un traçage en temps réel, il est nécessaire d'utiliser plt.pause() . Voici une version révisée :

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

Le changement clé est l'ajout de plt.pause(0.05) après avoir tracé chaque point. plt.pause() dessine les données mises à jour et exécute la boucle d'événements de l'interface graphique. L'argument 0,05 spécifie un délai de 50 millisecondes, donnant à l'interface graphique le temps d'afficher le point et de gérer les interactions de l'utilisateur (par exemple, la fermeture de la fenêtre).

Ce code modifié devrait garantir que l'intrigue se met à jour en douceur en temps réel, permettant à l'utilisateur de visualiser les données de manière dynamique.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal