Maison >développement back-end >Tutoriel Python >Comment détacher les tracés matplotlib de l'exécution de code pour le calcul simultané ?

Comment détacher les tracés matplotlib de l'exécution de code pour le calcul simultané ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 16:55:03533parcourir

How to detach matplotlib plots from code execution for concurrent computation?

Tracés Matplotlib détachables pour le calcul simultané

Dans le domaine de la visualisation de données, la génération de tracés interactifs est souvent un aspect crucial. Matplotlib, une bibliothèque Python populaire, offre la possibilité de créer des tracés statiques et interactifs. Cependant, les utilisateurs peuvent rencontrer des limitations lorsqu'ils tentent de détacher les tracés matplotlib de l'exécution de leur code pour permettre des calculs en cours.

Défi : détacher les tracés de l'exécution du code

Considérez les éléments suivants Extrait de code Python :

from matplotlib.pyplot import *
plot([1,2,3])
show()
# other code

Après avoir exécuté ce code, une fenêtre de tracé apparaît. Cependant, le problème réside dans la nécessité de quitter la fenêtre de tracé avant que le programme puisse poursuivre les calculs. L'exploration interactive des résultats intermédiaires pendant que le programme poursuit ses calculs devient impossible.

Solution : utiliser des appels Matplotlib non bloquants

Pour surmonter ce défi, matplotlib propose plusieurs appels qui peut être utilisé sans bloquer l’exécution du code. Un de ces appels est draw(). En incorporant les modifications suivantes :

from matplotlib.pyplot import plot, draw, show
plot([1,2,3])
draw()
print('continue computation')

# at the end call show to ensure window won't close.
show()

L'exécution de ce code permet à la fenêtre de tracé de s'afficher immédiatement pendant que le programme poursuit d'autres tâches de calcul. La fonction draw() met à jour efficacement le tracé sans bloquer l'exécution du code.

Une autre méthode consiste à utiliser le mode interactif dans matplotlib :

from matplotlib.pyplot import plot, ion, show
ion() # enables interactive mode
plot([1,2,3]) # result shows immediatelly (implicit draw())

print('continue computation')

# at the end call show to ensure window won't close.
show()

Activation du mode interactif dans matplotlib, indiqué par l'ion( ), permet au tracé de se mettre à jour et de s'afficher en temps réel au fur et à mesure de la progression des calculs, sans avoir besoin d'appels explicites à draw(). L'appel show() à la fin garantit que la fenêtre de tracé reste ouverte.

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