... | ... | @@ -56,10 +56,11 @@ Cette colonne doit devenir l'index de la table. On a donc au final un DF avec un |
|
|
|
|
|
L'outil zoom montre que l'affichage des étiquettes de date est correct quel que soit le niveau de zoom, contrairement à la première expérience. Dans la suite, vous trouverez les instructions qui donnent ce rendu même en dehors de Pandas.
|
|
|
|
|
|
Par défaut, les trois variables sont toutes les 3 tracées dans le même repère, bien qu'elles aient des unités différentes. Cela permet déjà de voir les données rapidement. Pour un vrai graphique mis en forme, il faut [utiliser des méthodes spécifiques à pandas](https://stackoverflow.com/questions/68955060/how-to-plot-a-pandas-dataframe-with-multiple-axes-each-rendering-multiple-column).
|
|
|
Par défaut, les trois variables sont toutes les 3 tracées dans le même repère, bien qu'elles aient des unités différentes. Cela permet déjà de voir les données rapidement. Pour un vrai graphique mis en forme, il faut utiliser des méthodes spécifiques à Pandas ;
|
|
|
|
|
|
* plot en précisant si c'est sur un \[axe secondaire\](<https://pandas.pydata.org/docs/user_guide/visualization.html#plotting-on-a-secondary-y-axis>)
|
|
|
* définition d'une figure organisée en plusieurs "vignettes" (Axes) : \[subplots\](<https://pandas.pydata.org/docs/user_guide/visualization.html#subplots>)
|
|
|
* voir aussi des discussions autour des cas plus avancés : [utiliser des méthodes avancées de tracé de pandas](https://stackoverflow.com/questions/68955060/how-to-plot-a-pandas-dataframe-with-multiple-axes-each-rendering-multiple-column).
|
|
|
|
|
|
Pour ne pas compliquer les choses avec les syntaxes spécifique pandas, on va dans la suite travailler avec les méthodes standard de matplotlib, en passant en arguments x et y les dates et les valeurs séparément.
|
|
|
|
... | ... | @@ -121,12 +122,13 @@ Pour se rendre compte de la différence, mettez cette instruction en commentaire |
|
|
La figure tracée par la fonction **donnees_TD_ETP_2subplots** souffre de défauts esthétiques (couleurs qui se voient mal...) et de plus elle représente par des lignes des variables qui sont en fait des moyennes à pas de temps fixe. On va donc utiliser la méthode **step** sur laquelle j'attire votre attention car j'ai eu du mal à la trouver ! :warning: on remarque que le dernier point n'est pas suivi d'un trait horizontal, ce qui se comprend car dans les arguments il n'y pas d'information qui permettrait de savoir où l'arrêter ; ici cela ne pose pas de problème, mais cela peut parfois être trompeur.
|
|
|
|
|
|
<details>
|
|
|
<summary>Cliquez pour en savoir plus sur \\\*\\\*step\\\*\\\* et \\\*\\\*bar\\\*\\\*</summary>
|
|
|
Au moment de l'écriture, les tests avec \*\*bar\*\* ont donné des résultats complètement inutilisables : les valeurs étaient placées en fonction de leur rang (indépendamment des valeurs de x), avec l'intégralité des étiquettes en x ! Ainsi, avec plusieurs courbes qui ne partagent pas exactement la même liste de dates (par exemple, la série originale puis la même mais rééchantillonnée au mois), le rendu est absurde. Des posts de blog et autres discussions de forums ont fait le même constat, et proposaient des expédients pas forcément transposables à nos données (imposer la liste des étiquettes, valable avec une seule courbe et sans zoomer, ou... utiliser plot). En se référant à la doc (le bon réflexe ! ) la raison est apparue : cette méthode convient à des valeurs \*\*par catégories\*\*. \*\*Depuis, la méthode bar a évolué\*\* : elle permet maintenant de respecter la chronologie. C'est encore un bon exemple de la difficulté de trouver des informations : à part dans la doc officielle, qui existe pour chaque version, vous n'êtes pas à l'abri de trouver une information erronée ou incomplète (par exemple ; "bar ne convient pas donc il faut utiliser plot", alors que step est bien meilleur) ou une information correcte au moment de sa rédaction mais obsolète pour votre version.
|
|
|
<summary>Cliquez pour en savoir plus sur \\\\\\\*\\\\\\\*step\\\\\\\*\\\\\\\* et \\\\\\\*\\\\\\\*bar\\\\\\\*\\\\\\\*</summary>
|
|
|
|
|
|
Au moment de l'écriture, les tests avec \\\*\\\*bar\\\*\\\* ont donné des résultats complètement inutilisables : les valeurs étaient placées en fonction de leur rang (indépendamment des valeurs de x), avec l'intégralité des étiquettes en x ! Ainsi, avec plusieurs courbes qui ne partagent pas exactement la même liste de dates (par exemple, la série originale puis la même mais rééchantillonnée au mois), le rendu est absurde. Des posts de blog et autres discussions de forums ont fait le même constat, et proposaient des expédients pas forcément transposables à nos données (imposer la liste des étiquettes, valable avec une seule courbe et sans zoomer, ou... utiliser plot). En se référant à la doc (le bon réflexe ! ) la raison est apparue : cette méthode convient à des valeurs \\\*\\\*par catégories\\\*\\\*. \\\*\\\*Depuis, la méthode bar a évolué\\\*\\\* : elle permet maintenant de respecter la chronologie. C'est encore un bon exemple de la difficulté de trouver des informations : à part dans la doc officielle, qui existe pour chaque version, vous n'êtes pas à l'abri de trouver une information erronée ou incomplète (par exemple ; "bar ne convient pas donc il faut utiliser plot", alors que step est bien meilleur) ou une information correcte au moment de sa rédaction mais obsolète pour votre version.
|
|
|
|
|
|
(éléments développés actuellement [dans une autre page, consacrée au traitement des chroniques en hydrologie](https://gitlab.irstea.fr/orchyds-visualisation-et-traitement-de-chroniques-pas-de-temps-fixe/echasses/-/wikis/visualisations,-annexe-technique)
|
|
|
|
|
|
</details>Pour étoffer l'arsenal des courbes, on va aussi utiliser \*\*scatter\*\* à titre d'exercice, même si ce n'est pas vraiment pertinent ici. Scatter permet de passer comme argument color et size soit une valeur unique soit in vecteur de même taille de x et y. Ici, il n'y a pas matière à faire varier la taille (sauf pour s'exercer), on propose de jouer sur la couleur. On en profite au passage pour manipuler un dictionnaire qui vous propose une relation entre les entiers de 1 à 12 et des couleurs.
|
|
|
</details>Pour étoffer l'arsenal des courbes, on va aussi utiliser \\\*\\\*scatter\\\*\\\* à titre d'exercice, même si ce n'est pas vraiment pertinent ici. Scatter permet de passer comme argument color et size soit une valeur unique soit in vecteur de même taille de x et y. Ici, il n'y a pas matière à faire varier la taille (sauf pour s'exercer), on propose de jouer sur la couleur. On en profite au passage pour manipuler un dictionnaire qui vous propose une relation entre les entiers de 1 à 12 et des couleurs.
|
|
|
|
|
|
```python
|
|
|
```
|
... | ... | |