"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi le graphique en temps réel Matplotlib n'est-il pas mis à jour en boucle?

Pourquoi le graphique en temps réel Matplotlib n'est-il pas mis à jour en boucle?

Publié le 2025-04-21
Parcourir:578

Why Doesn't My Matplotlib Real-Time Plot Update Inside a While Loop?

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 i  

Dans 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.

Dernier tutoriel Plus>

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