Maison >développement back-end >Tutoriel Python >Comment puis-je réaliser un traçage en temps réel dans une boucle While en Python ?

Comment puis-je réaliser un traçage en temps réel dans une boucle While en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-08 00:24:16348parcourir

How Can I Achieve Real-Time Plotting Within a While Loop in Python?

Traçage en temps réel dans des boucles While

Les développeurs sont souvent confrontés au défi de tracer des données en temps réel dans le cadre d'applications basées sur les données. Cependant, un problème courant survient lorsque l'on tente d'implémenter un tracé en temps réel dans une boucle « while ».

Considérez l'exemple suivant, dans lequel nous visons à tracer des points de données aléatoires en temps réel à l'aide d'OpenCV :

fig = plt.figure()
plt.axis([0, 1000, 0, 1])

i = 0
x = list()
y = list()

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

Malheureusement, ce code ne parvient pas à tracer les points individuellement en temps réel. Au lieu de cela, il suspend l'exécution du programme jusqu'à ce que la boucle soit terminée avant d'afficher le graphique.

La clé pour activer le traçage en temps réel réside dans l'appel de la fonction plt.pause(0.05) dans la boucle. Cette fonction met non seulement à jour le tracé avec les dernières données, mais exécute également la boucle d'événements de l'interface graphique. Cela permet l'interaction de l'utilisateur, garantissant que le tracé reste réactif et interactif pendant l'exécution de la boucle :

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

En incorporant plt.pause(0.05), vous débloquez la possibilité de tracer des points de données en temps réel. temps, vous permettant de visualiser vos données au fur et à mesure de leur flux.

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!

Déclaration:
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