Tracé en temps réel dans une boucle de temps: un guide de dépannage
Lorsque vous essayez de créer des intrigues en temps réel, il est essentiel de comprendre pourquoi les mises à jour de l'intrigue peuvent ne pas se produire comme prévu pendant une boucle en temps réel. Dans cette instance spécifique, le problème se pose de l'implémentation de traçage en temps réel à l'aide de Matplotlib pour visualiser les données récupérées à partir d'une caméra dans OpenCV.
pour isoler le problème, un exemple de code simplifié a été présenté:
fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while iDans l'attente de voir 1000 points tracés individuellement, le code ne montre étonnamment que le premier point, puis attend que la boucle se termine avant de remplir le reste du graphique. Ce comportement survient parce que le comportement par défaut de Matplotlib est d'attendre la fin du programme pour dessiner l'intégralité du graphique.
pour surmonter cette limitation et atteindre le traçage en temps réel, l'extrait de code doit être modifié comme suit:
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()La différence clé ici est l'inclusion de plt.pause (0.05). Cette fonction pause l'exécution du programme pendant 0,05 seconde, permettant à la fois le point de données d'être tracé et la boucle d'événement de l'interface graphique à fonctionner (rendant les interactions de souris possibles).
Avec cette modification, le tracé sera mis à jour en temps réel, montrant chaque point tel qu'il est ajouté à l'ensemble de données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3