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()
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()
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!