... | ... | @@ -9,7 +9,7 @@ Les widgets sont des objets permettant d'interagir avec la figure, il faut pour |
|
|
|
|
|
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 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.
|
|
|
- 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 **outils** ajoutés à la barre d'outils (portant du texte ou une icône). Enfin, une version plus aboutie, qui n'utilise plus de boutons mais seulement des outils 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)
|
|
|
|
... | ... | @@ -39,7 +39,12 @@ Les "sliders" sont intéressants pour faire varier "en direct", et créer presqu |
|
|
***ProbaCruesMaxAn_SurNannees_stairs** est une autre version qui propose en plus un graphique en escalier, intéressant car on doit jouer avec les Locator et Formatter pour que l'étiquette se place au milieu de chaque marche d'escalier.
|
|
|
|
|
|
**Chegodaiev.py** : code simple pour illustrer la notion de fréquence empirique, avec la formule de Tchégodaiev et une formule plus générique paramétrée par a et b, dont les valeurs sont modifiables avec des "sliders". Une case à cocher permet de changer l'abscisse de fréquence en période de retour.
|
|
|
Il est utilisable, mais il reste quelques maladresses, dans les définitions des xlim par exemple ou le choix des méthodes de tracé pour Tchgodaiev (les vlines allant de 0 à la valeur max ne sont pas forcément le meilleur choix, et surtout ils sont bien plus compliqués à mettre à jour !). Comme il a aussi une vocation d'exercice, on a utilisé le widget "checkbutton" même si le rendu est catastrophique... Un simple bouton serait mieux.
|
|
|
Il est utilisable, mais il reste quelques maladresses, dans les définitions des xlim par exemple ou le choix des méthodes de tracé pour Tchgodaiev (les vlines allant de 0 à la valeur max ne sont pas forcément le meilleur choix, et surtout ils sont bien plus compliqués à mettre à jour !). Comme il a aussi une vocation d'exercice, on a utilisé le widget "checkbutton" même si le rendu est catastrophique dans ce cas de figure... Le "radiobouton" aussi est très mal représenté, avec un ovale très aplati au lieu d'un cercle. On peut penser qu'un simple bouton serait mieux.
|
|
|
|
|
|
<details><summary>Plus d'infos sur la customisation des checkbuttons</summary>
|
|
|
Il est possible d'aller modifier la taille de la case à cocher, qui est un objet Rectangle du module matplotlib.patches, avec par exemple la méthode set_bounds(left, bottom, width, height). J'ai essayé, c'est plutôt facile de trouver l'attribut rectangles de la case à cocher et de trouver des dimensions qui vont bien, surtout avec une seule case à cocher.
|
|
|
Par contre, si la case est cochée les lignes qui sont tracées restent définies en fonction de la case définie par défaut, il faudrait donc également modifier les propriétés des Line2D en conséquence, ce que je n'ai pas testé. La liste des lignes est dans l'attribut lines et pour chaque ligne on peut modifier les coordonnées avec set_data(self, *args, avec *args(2, N) array ou 2 1D arrays
|
|
|
</details>
|
|
|
|
|
|
**GenerateurCruesMaxAnnuelles.py** : code non commenté ici mais il est ajouté au dépôt pour information.
|
|
|
C'est une étape intermédiaire entre Chegodaiev.py (dont il corrige quelques maladresses) et un code qui commence à être diffusable, **Sample2Gumbel**. Comme **Sample2Gumbel** est appelé à évoluer, on a préféré citer ici l'étape intermédiaire sur laquelle on ne reviendra pas.
|
... | ... | |