|
|
# "Widgets" directement avec matplotlib
|
|
|
|
|
|
Cette session "G" a été ajoutée pour permettre de manipuler les **widgets de Matplotlib** sur un exemple simple, sans avoir à lire un fichier ni utiliser les rééchantillonnages (une difficulté à la fois...).
|
|
|
Cette session "G" a été ajoutée pour permettre de manipuler les **widgets de Matplotlib** sur un exemple plus simple que les étapes "E" et "F", en particulier sans avoir à lire un fichier ni utiliser pandas et ses rééchantillonnages (une difficulté à la fois...).
|
|
|
Les widgets sont des objets permettant d'interagir avec la figure, il faut pour cela les associer avec des fonctions qui, par exemple, recalculent des valeurs en fonction de nouveaux paramètres et retracent les courbes :
|
|
|
- :arrow_backward: :arrow_forward: "Sliders"
|
|
|
- :ballot_box_with_check: cases à cocher : Checkbuttons
|
|
|
- :radio_button: choix d'une option : Radiobuttons
|
|
|
- :stop_button: boutons : Buttons.
|
|
|
|
|
|
On s'appuie pour les explications sur :
|
|
|
- Le code ProbaCruesMaxAn_SurNannees.py : utilisation du widget "slider" pour changer les paramètres d'une fonction très simple, recalculer les résultats et mettre à jour deux courbes (tracés pour l'instant avec **plot**, mais ce n'est pas forcément la meilleur solution... à voir...).
|
|
|
- le code Chegodaiev.py combine plusieurs types de courbes (plot, vlines) et utilise deux sliders et une checkbox (widget CheckButtons) ; GenerateurCruesMaxAnnuelles.py s'appuie sur ce code qu'il développe pour faire passer un message plus complexe. Il manipule d'autres types de courbes (scatter, stem). On y tester aussi, en doublon des widget boutons, des boutons ajoutés à la barre d'espace (portant une icône)
|
|
|
- Le code ProbaCruesMaxAn_SurNannees.py : utilisation du widget **"slider"** pour changer les paramètres d'une fonction très simple, recalculer les résultats et mettre à jour deux courbes (tracés pour l'instant avec **plot**, mais ce n'est pas forcément la meilleur solution... à voir...).
|
|
|
- le code Chegodaiev.py combine plusieurs types de courbes (plot, vlines) et utilise deux **sliders** et une **checkbox** (widget CheckButtons) ; GenerateurCruesMaxAnnuelles.py s'appuie sur ce code qu'il développe pour faire passer un message plus complexe. Il manipule d'autres types de courbes (scatter, stem). On y teste aussi, en doublon des widget **boutons**, des **boutons** ajoutés à la barre d'espace (portant une icône). Enfin, une version plus aboutie, qui remplace les boutons par des icônes ajoutées à la barre d'outils de matplotlib, a été déposée dans un projet public, avec traduction en anglais (en cours...) sous le nom Sample2Gumbel.
|
|
|
|
|
|
illustrations ; [fenêtre matplotlib de GenerateurCruesMaxAnnuels avec widgets et nouveaux boutons](https://gitlab.irstea.fr/christine.poulard/atelier-matplotlib/-/blob/master/AtelierG_widgetsEtBoutonsToolbar.png)
|
|
|
|
|
|
![Sample2Gumbel screenshot](/images/DixAnsAvecCentennaleEtQuinquennale.png )
|
|
|
![Sample2Gumbel screenshot](/images/DixAnsAvecCentennaleEtQuinquennale.png)
|
|
|
|
|
|
|
|
|
On en profitera quand même pour ajouter une manipulation de variable globale, pour pouvoir changer la valeur d'une variable dans une fonction. Cela est à utiliser avec précaution toutefois...
|
|
|
Au passage, on manipulera la notion de "portée des variables". Certaines fonctions utilisent le mot-clef "global" pour pouvoir changer la valeur d'une variable du corps du programme dans une fonction. Cela est à utiliser avec précaution toutefois...
|
|
|
|
|
|
### à propos des widgets de matplotlib,
|
|
|
Il s'agit bien des widgets de matplotlib, ce qui peut rendre service en phase de test sans assurer un rendu parfait... mais en s'épargnant le recours à une bibliothèque d'interface (Tkinter, PyQT ou PySide...).
|
... | ... | |