Interactive matplotlib terrain avec deux curseurs
J'ai utilisé matplotlib de créer de l'intrigue, qui dépend de 8 variables. Je voudrais étudier la façon dont l'intrigue change lorsque je change certains d'entre eux. J'ai créé un script qui appelle la matplotlib l'un et génère différents clichés plus tard, je les convertir dans un film, il n'est pas mauvais, mais un peu maladroit.
-
Je me demande si quelque part, je pouvais interagir avec l'intrigue de la régénération à l'aide des touches du clavier pour augmenter /diminuer les valeurs de certaines variables et de voir instantanément la façon dont l'intrigue changements.
-
Quelle est la meilleure approche pour cela?
-
Aussi si vous pouvez m'indiquer des liens intéressants ou un lien avec un complot exemple avec deux curseurs?
Vous devez vous connecter pour publier un commentaire.
En plus de ce que @triplepoint mentionné, avoir un regard sur le widget de curseur.
Il y a un exemple sur la page des exemples de matplotlib. C'est un graphique à barre du curseur plutôt que des touches du clavier, mais il fonctionne très bien pour ce que vous voulez faire.
Notez aussi que pour garantir les curseurs et les boutons restent sensibles et ne sont pas des déchets collectés, les références vers les objets (
amp_slider
,freq_slider
, etc.) doit être maintenue par vous-même.(Je suis en train de faire ce wiki de la communauté, que je suis juste copier-coller à partir de l'exemple.
Cet exemple en particulier, enseigne de mauvaises habitudes (par exemple,L'exemple a été corrigé afin d'éviter l'utilisation defrom pylab import *
), mais il obtient le point à travers.pylab
.)ipython
est un outil interactif de python shell. Un ipython notebook est une interface web qui envoie fondamentalement des extraits de code àipython
d'évaluer et de retourner les résultats de. Pour cette raison, ipython cahiers juste rendre matplotlib chiffres comme statique .png, au lieu de sauter d'une fenêtre interactive.ipython
lui-même (ou tout simplement de lancer le script directement avecpython
) montrera une interface graphique interactive fenêtre pour chaque matplotlib figure.Matplotlib a assez belle interface fonctionnalité. Il y a quelques exemples de la documentation dans les sources de matplotlib, dans /exemples/user_interfaces et matplotlib>/exemples/event_handling. Spécifiquement sur keyhandling est: http://matplotlib.sourceforge.net/examples/event_handling/keypress_demo.html
J'ai fait quelque chose sorte de semblable à ce que vous visez:
J'ai été en utilisant ce changement par le biais d'afficher des images différentes dans une pile sur des combinaisons de touches, mais vous devriez être capable de mettre de la logique dans pour modifier les valeurs d'une donnée d'entrée de clavier.
Si vous voulez faire les choses comme les utilisateurs de valeurs d'entrée, je pense que les exemples des options de boîtes de dialogue, mais si vous voulez juste pour incrémenter/décrémenter un certain nombre de variables, juste la définition de paires clavier pour eux de cette manière pourrait bien fonctionner
Utilisation
waitforbuttonpress(timeout=0.001)
puis parcelle verrez votre souris tiques.Je ne pense pas que simplement de la représentation graphique à l'aide de
plt.plot
vous permettra de le faire. Vous devez vous-même faire une GUI personnalisé script/app par incorporation de Matplotlib en elle. Actuellement, Matplotlib prend en charge tous les principaux kits graphiques - PyGTK+, PyQt4 et wxPython.J'utilise wxPython et l'incorporation de matplotlib est assez facile. Similaire devrait être le cas avec les autres kits graphiques. Vous pouvez obtenir toutes les informations dont vous avez besoin pour cela dans le livre -
Il est disponible sur amazon ici.
Pour ipython ou jupyter carnets de notes vous pouvez utiliser ipywidgets:
Voir la documentation ici:
https://ipywidgets.readthedocs.io/en/stable/examples/Using%20Interact.html