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 15, 2021 by Poulard Christine's avatar Poulard Christine
Hide whitespace changes
Inline Side-by-side
AtelierC.md
View page @ d96683ce
......@@ -5,22 +5,50 @@ Cet objectif ne semble pas hyper ambitieux, et vous trouverez des tutos pour ré
On vous a mis plusieurs versions du fichier, qui était initialement un fichier tableur.
On va choisir celui qui est le mieux conditionné pour utiliser cette fois la méthode read_csv de pandas qui va tout lire et bien ranger, y compris les titres de colonne.
Dans le code, on propose (en commentaire) plusieurs manières de décoder les dates.
Si vous voulez le faire "à la main", vous trouverez en commentaire plusieurs manières de décoder les dates, à partir de la ligne lue, toujours en format "string".
```python
ligne_dateTPQ = "01/04/2000;9,3;49;8,6"
```
ensuite... vous "splittez" et vous décodez la date avec différentes méthodes.
En particulier, il y a des exercices sur les tuples (notions que l'on reverra plus loin)
Comme dans la partie A, le découpage se fait avec l'instruction "split". La date est le premier de ces éléments, qui est comme les autres une chaîne de caractères (string), à convertir en date. Le plus simple est de "re-splitter" avec comme argument le séparateur "/".
On peut en profiter pour s'exercer sur les **tuples** (notions que l'on reverra plus loin)
```python
jma = "01/04/2000".split('/') # jma est donc une liste de string ['01', '04', '2000']
j, m, a = jma # unpacking : j= '01', m='04', a = '2000'
jma = "01/04/2000".split('/') # jma est donc une liste de strings ['01', '04', '2000']
j, m, a = jma # unpacking : en une seule opération on affecte j= '01', m='04', a = '2000'
# on pourrait même écrire directement
j, m, a = "01/04/2000".split('/')
# et ensuite on crée un objet au format datetime
date = datetime(int(a), int(m), int(j))
```
### C2) on demande à Pandas de faire tout le boulot : lire le fichier et faire un graphique
Dans un premier temps, on va profiter de la bibliothèque pandas, qui crée et travaille sur des **DataFrames**.
``` python
import pandas as pd
```
On vous a donné du code déjà écrit, donnees_TD_ETP_csv_panda_seul ; vous pouvez sans doute l'améliorer.
On va s'appuyer sur la méthode read_csv pour lire le fichier et le mettre sous forme de tableau (DataFrame).
Il devrait être possible de tout récupérer au format voulu en une seule opération, mais ici on a dû écrire quelques étapes.
On utilise des instructions comme "print" pour vérifier que l'on a bien lu correctement, et header pour jeter un oeil aux premières lignes du DF.
Dans un deuxième temps, on va convertir la première colonne (donc d'indice 0) de texte en date, et avec pd.to_datetime ; l'argument day_first permet de lever une ambiguité : le jour ou le mois est écrit en premier
Cette colonne doit devenir l'index de la table.
On a donc au final un DF avec un index date et 3 colonnes T, P et Q.
Le module pandas permet de tracer en une opération les données : mon_data_frame.plot().
``` python
DF_TD4.plot()
plt.suptitle("En utilisant les possibilités de pandas")
plt.legend()
plt.show()
```
La bonne nouvelle : 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.
On utilisera dans la suite des instructions qui donnent ce rendu même en dehors de Pandas.
La mauvaise nouvelle : les trois variables, qui s'expriment dans des unités différentes, sont toutes les 3 tracées dans le même repère. Cela permet de voir les données rapidement, mais évidemment la mise en forme n'est pas du tout satisfaisante pour un rapport. On va donc retravailler cela dans la suite.
### C2) un deuxième axe. Un deuxième quoi ?
On vous a donné du code déjà écrit, comme ce que vous pourriez trouver en ligne.
Ca marche, même si c'est plutôt moche, donc n'hésitez pas à mettre en forme pour vous exercer.
......
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