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
  • Atelier_D_carte

Atelier_D_carte · Changes

Page history
Update Atelier_D_carte authored Dec 10, 2021 by Poulard Christine's avatar Poulard Christine
Hide whitespace changes
Inline Side-by-side
Atelier_D_carte.md
View page @ de68bd20
...@@ -49,7 +49,7 @@ les arguments **"extent "** et **"origin"** semblent assez logique mais ils sont ...@@ -49,7 +49,7 @@ les arguments **"extent "** et **"origin"** semblent assez logique mais ils sont
_Exemple de carte d'intensité de pluie à partir d'une matrice, avec tracé des rivières et d'un BV ; colormap discrète définie par une liste de couleurs ; on verra dans l'atelier comment faire mieux en discrétisant une colormap continue prédéfinie_ _Exemple de carte d'intensité de pluie à partir d'une matrice, avec tracé des rivières et d'un BV ; colormap discrète définie par une liste de couleurs ; on verra dans l'atelier comment faire mieux en discrétisant une colormap continue prédéfinie_
# **Etape 1** : tracer une carte à partir d'une **matrice de valeurs** ("heatmap") ## **Etape 1** : tracer une carte à partir d'une **matrice de valeurs** ("heatmap")
[Sur le REPL.it, une série de cartes simples est proposée](https://replit.com/@CPoulard/LaCartoAvecMplMatshowEtShapely#main.py), on ne travaille qu'avec une petite matrice 5x5 sortie du chapeau . Cela permet néanmoins de voir les bases : \* l'instruction **imshow** pour tracer le champ de valeurs sur une grille (en numéros de ligne et numéros de colonne) \* l'argument **extent** pour tracer avec, par exemple, des coordonnées Lambert \* faire apparaître **une échelle de couleurs et la customiser**. [Sur le REPL.it, une série de cartes simples est proposée](https://replit.com/@CPoulard/LaCartoAvecMplMatshowEtShapely#main.py), on ne travaille qu'avec une petite matrice 5x5 sortie du chapeau . Cela permet néanmoins de voir les bases : \* l'instruction **imshow** pour tracer le champ de valeurs sur une grille (en numéros de ligne et numéros de colonne) \* l'argument **extent** pour tracer avec, par exemple, des coordonnées Lambert \* faire apparaître **une échelle de couleurs et la customiser**.
...@@ -59,7 +59,7 @@ Sur ce git, le code est plus complet, et permet de tracer : ...@@ -59,7 +59,7 @@ Sur ce git, le code est plus complet, et permet de tracer :
* des champs lus dans un fichier binaire (pour info) * des champs lus dans un fichier binaire (pour info)
* des fichiers shape. * des fichiers shape.
## Etape 1.a : Premier contact, afficher une matrice avec _plt.matshow_ ### **Etape 1.a** : Premier contact, afficher une matrice avec _plt.matshow_
Un premier contact avec la méthode **plt.imshow** ou **plt.matshow**, où on passe juste une matrice . Un bon réflexe : lire la doc ! **Axes.matshow(Z:array-like, kwargs)**¶ _Plot the values of a 2D matrix or array as color-coded image. The matrix will be shown the way it would be printed, with the first row at the top. Row and column numbering is zero-based._ Un premier contact avec la méthode **plt.imshow** ou **plt.matshow**, où on passe juste une matrice . Un bon réflexe : lire la doc ! **Axes.matshow(Z:array-like, kwargs)**¶ _Plot the values of a 2D matrix or array as color-coded image. The matrix will be shown the way it would be printed, with the first row at the top. Row and column numbering is zero-based._
...@@ -84,11 +84,12 @@ Quelques remarques suite à la première figure générée : ...@@ -84,11 +84,12 @@ Quelques remarques suite à la première figure générée :
* voir l'échelle colorimétrique : étape 3 * voir l'échelle colorimétrique : étape 3
* comment customiser l’échelle ? : étape 4 * comment customiser l’échelle ? : étape 4
* comment travailler avec des données géoréférencées ? : étape 5 * comment travailler avec des données géoréférencées ? : étape 5
| deuxième étape : méthode `matshow `en spécifiant uniquement la matrice ; on a ajouté une `colorbar` | troisième étape : on envoie à matshow l'argument extent, ce qui revient à définir les coordonnées des 4 coins |
|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| ![Cartes_Replit_2](uploads/cf23f79e6554fe32fbc2de57eceb3e89/Cartes_Replit_2.PNG) | ![](uploads/7b3cc259ebe50939fce5a65662361842/Cartes_Replit_3.PNG) |
\*\*Etape 1.b \*\*: légende colorimétrique | deuxième étape : méthode `matshow` en spécifiant uniquement la matrice ; on a ajouté une `colorbar` | troisième étape : on envoie à matshow l'argument extent, ce qui revient à définir les coordonnées des 4 coins |
|--------------|--------------|
| ![Cartes_Replit_2](uploads/cf23f79e6554fe32fbc2de57eceb3e89/Cartes_Replit_2.PNG) | ![Cartes_Replit_3](uploads/7b3cc259ebe50939fce5a65662361842/Cartes_Replit_3.PNG) |
## **Etape 1.b**: légende colorimétrique
Dans un premier temps, on va demander à afficher la légende ; comme on n'a pas précisé le code couleur, donc c'est donc un paramétrage "par défaut". On en profite pour ajouter un carré orange de côté 1 dont un des sommets est en (0,0), pour matérialiser le décalage entre le pixels et la grille. Note : l'argument 'interpolate' nous permet de choisir entre cette représentation "par pixels" et une représentation lissée. Dans un premier temps, on va demander à afficher la légende ; comme on n'a pas précisé le code couleur, donc c'est donc un paramétrage "par défaut". On en profite pour ajouter un carré orange de côté 1 dont un des sommets est en (0,0), pour matérialiser le décalage entre le pixels et la grille. Note : l'argument 'interpolate' nous permet de choisir entre cette représentation "par pixels" et une représentation lissée.
...@@ -114,7 +115,7 @@ plt.tick_params(labeltop=False, labelbottom=True) ...@@ -114,7 +115,7 @@ plt.tick_params(labeltop=False, labelbottom=True)
plt.show() plt.show()
``` ```
# \*\*Etape 1.c \*\*: On spécifie les coordonnées des coins grâce à l'argument _extent_. ### **Etape 1.c **: On spécifie les coordonnées des coins grâce à l'argument _extent_.
La carte reste visuellement identique mais le repère a changé : les cases coïncident alors avec les mailles de la grille, et l'axe des y prend alors la valeur 0 en bas . Pour bien montrer le changement de repère, on a placé un rectangle défini de la même manière qui n'a pas le même emplacement dans les 2 repères. Voir aussi l'argument **origin** qui peut être utile. La carte reste visuellement identique mais le repère a changé : les cases coïncident alors avec les mailles de la grille, et l'axe des y prend alors la valeur 0 en bas . Pour bien montrer le changement de repère, on a placé un rectangle défini de la même manière qui n'a pas le même emplacement dans les 2 repères. Voir aussi l'argument **origin** qui peut être utile.
...@@ -134,7 +135,7 @@ plt.tick_params(labeltop=False, labelbottom=True) ...@@ -134,7 +135,7 @@ plt.tick_params(labeltop=False, labelbottom=True)
fig.show() fig.show()
``` ```
\*\*Etape 1.d \*\*: personnaliser l'échelle colorimétrique et la légende correspondante On peut personnaliser le code couleur, en imposant les couleurs et les limites de classe, et la légende, en formatant les valeurs ou en ajoutant un titre par exemple. ### **Etape 1.d**: personnaliser l'échelle colorimétrique et la légende correspondante On peut personnaliser le code couleur, en imposant les couleurs et les limites de classe, et la légende, en formatant les valeurs ou en ajoutant un titre par exemple.
| 4) on peut définir une colormap par une liste de couleurs, et spécifier des limites de classe ; notez les classes pour "-200 et moins" ou "500 et plus" | 5) quand c'est préférable, on peut partir d'une échelle colorimétrique continue que l'on va découper en N classes. Il reste possible de la modifier couleur par couleur. | | 4) on peut définir une colormap par une liste de couleurs, et spécifier des limites de classe ; notez les classes pour "-200 et moins" ou "500 et plus" | 5) quand c'est préférable, on peut partir d'une échelle colorimétrique continue que l'on va découper en N classes. Il reste possible de la modifier couleur par couleur. |
|-----------------------------------------|-------------------------------------------------| |-----------------------------------------|-------------------------------------------------|
......
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