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!