Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • PYTHON - Atelier MatPlotLib PYTHON - Atelier MatPlotLib
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

La forge institutionnelle d'INRAE étant en production depuis le 10 juin 2025, nous vous recommandons d'y créer tous vos nouveaux projets.

  • Poulard Christine
  • PYTHON - Atelier MatPlotLibPYTHON - Atelier MatPlotLib
  • Wiki
  • AtelierC

AtelierC · Changes

Page history
Update AtelierC authored Mar 07, 2022 by Poulard Christine's avatar Poulard Christine
Show whitespace changes
Inline Side-by-side
AtelierC.md
View page @ ee888473
## C) Atelier 2 : un graphique avec 3 variables d'unités différentes : 2e axe des y, subplots ; les objets d'une figure
**Objectif :** représenter sur une même figure des variables de nature différente mais tracées selon un même axe des x, avec une légende contenant toutes les variables **Notions principales** : Figure, Axes, subplots, sharex, twinx, ax.legend et fig.legend **Notions accessoires** : types de courbe plot, vlines, step (plus de détails [page focus step](focus_step)), scatter (plus de détails [page focus scatter](focus_scatter)) ; dictionnaires ; créer une légende totalement customisée
:construction_worker: attention, sans doute à cause des modifications répétées d'éditeur ("en test" !), le code reporté ici a... disparu.
Il reste le fichier python complet, en attendant de réparer le problème.
**Objectif :** représenter sur une même figure des variables de nature différente mais tracées selon un même axe des x, avec une légende contenant toutes les variables.
**Notions principales** : Figure, Axes, subplots, sharex, twinx, ax.legend et fig.legend **Notions accessoires** : types de courbe plot, vlines, step (plus de détails [page focus step](focus_step)), scatter (plus de détails [page focus scatter](focus_scatter)) ; dictionnaires ; créer une légende totalement customisée
**Notion secondaire** : on parlera un peu de la structure de **DataFrame du module pandas** et des solutions pour créer des graphiques spécifiques, mais ce thème sera approfondi dans une autre page. Il y a du nouveau sur Python et les pd.DataFrame avec la version 3.5.
Cet objectif ne semble pas hyper ambitieux, et vous trouverez des tutos pour réaliser facilement cette figure, et pourtant la syntaxe peut sembler étrange... et les légendes sont capricieuses... Un peu de théorie est indispensable pour comprendre la notion de \*subplots" et d' "Axes", liés ou non, et la construction d'une légende. La démarche proposée est en plusieurs étapes, pour manipuler les notions importantes progressivement. Le code fourni crée finalement la figure ci-dessous, composée de 3 "vignettes" dont deux portent une ou deux courbes. Elle n'est pas parfaite, vous pourrez vous exercer à l'améliorer. On remarque une légende commune aux deux vignettes en bas et une légende des couleurs des mois construites "à la main" au milieu.
......@@ -52,6 +59,19 @@ L'outil zoom montre que l'affichage des étiquettes de date est correct quel que
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). 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.
:three: .:five: **seaborn** connaît le type pandas.DataFrame et offre donc des syntaxes adaptées aux données contenues dans les DataFrame. La version matplotlib 3.5 a repris cette bonne idée :
```python
df = pandas.DataFrame({"var1":[1,2,3,4,5,6], "var2":[1,2,3,4,5,6]})
# syntaxe "classique", il faut extraire les colonnes et les passer en argument
plt.plot(df["var1"], df["var2"])
# syntaxe adaptée à la classe DataFrame : on donne les noms de colonne et le nom de la DataFrame
plt.plot("var1", "var2", data=df)
```
### C3) Mise en forme des données (sans pandas) : une figure avec deux vignettes, dont une avec deux axes des y.
Vous pouvez partir de la fonction précédente ou de **donnees_TD_ETP_2subplots** déjà écrit; dans le développement on trouve souvent en ligne des bouts de code qu'il faut s'approprier et adapter. Cette fonction reprend le début de la fonction précédente (lecture avec pd.read_csv), on trace aussi avec la méthode pd plot pour vérifier que la lecture s'est bien passée (phase que l'on peut ensuite mettre en commentaire). Ensuite on a du code spécifique. Si vous l'exécutez, vous verrez que ça marche, le rendu n'est pas forcément à votre goût, donc ce sera l'occasion de vous exercer à mettre en forme. On proposera par la suite une variante, vous pourrez donc étoffer votre palette.
......
Clone repository
  • AtelierB1_Graphiques_simples
  • AtelierB2_Lire_un_fichier
  • AtelierC
  • Atelier_D_carte
  • Atelier_D_carte_a_partir_de_fichiers_binaires
  • Atelier_E_longues_series
  • Atelier_G_widgets
  • Atelier_clic_afficher
  • Atelier_clics
  • Cartes focus sur le redimensionnement
  • GUI avec QT
  • La doc avec Sphinx
  • Lexique
  • Point Théorie Subplots
  • Pour les contributeurs
View All Pages