... | ... | @@ -9,6 +9,8 @@ Objectif : connaître la méthode **scatter** et en particulier : |
|
|
- les méthodes pour updater une courbe de type scatter (set_data, set_facecolors...)
|
|
|
- pistes pour créer une légende détaillée (faisant figurer le code couleur et/ou la taille des symboles)
|
|
|
|
|
|
Objectif secondaire : point sur les *colormaps* et sur les *colorbars*
|
|
|
|
|
|
### Présentation et comparaison avec la méthode plot
|
|
|
|
|
|
Comme d'habitude, la référence la plus complète et la plus fiable car régulièrement mise à jour est [la doc officielle](https://matplotlib.org/devdocs/api/_as_gen/matplotlib.axes.Axes.scatter.html?highlight=scatter#matplotlib.axes.Axes.scatter)
|
... | ... | @@ -55,13 +57,25 @@ plt.show() |
|
|
|
|
|
On va créer un code couleur de plusieurs façons ; on va en détailler 2 :
|
|
|
|
|
|
* comme dans l'atelier B, on va définir par un dictionnaire une correspondance numéro de mois => couleur
|
|
|
* plus simple, on désigne juste un vecteur dont les valeurs vont être traduites en couleurs selon une colormap : code ci-dessous.
|
|
|
* on en profite pour faire varier également la taille ; on définit le vecteur des tailles par une opération sur l'année. Grâce à l'argument **year** on peut facilement récupérer le numéro d'année d'un vecteur de dates.
|
|
|
*
|
|
|
a) au plus simple, on désigne juste un vecteur dont les valeurs vont être traduites en couleurs selon une colormap : code ci-dessous.
|
|
|
b) comme dans l'atelier B, on va définir par un dictionnaire une correspondance numéro de mois => couleur
|
|
|
|
|
|
On en profite pour faire varier également la taille ; on définit le vecteur des tailles par une opération sur l'année. Grâce à l'argument **year** on peut facilement récupérer le numéro d'année d'un vecteur de dates
|
|
|
|
|
|
```plaintext
|
|
|
** Code de l'exemple 2.a **
|
|
|
```python
|
|
|
plt.plot(dates, liste_mois, c='grey')
|
|
|
plt.scatter(dates, liste_mois, c=liste_mois, s=[4*(date.year - 1990) for date in dates], cmap='viridis')
|
|
|
|
|
|
plt.show()
|
|
|
```
|
|
|
... et pour ajouter une colorbar continue ;
|
|
|
```python
|
|
|
cax = plt.scatter(dates, liste_mois, c=liste_mois, s=[4 * (date.year - 1990) for date in dates], cmap='viridis')
|
|
|
plt.colorbar(cax)
|
|
|
```python
|
|
|
|
|
|
```python
|
|
|
DICO_COULEURS_MOIS = {1: "dimgrey", 2: "black", 3: "palegreen", 4: 'mediumspringgreen', 5: 'forestgreen', 6: 'gold', 7: 'orange',
|
|
|
8:'orangered', 9:'deepskyblue', 10:'royalblue', 11:'navy', 12:'silver'}
|
|
|
``` |
|
|
\ No newline at end of file |