... | @@ -115,29 +115,29 @@ On suppose ici que l'on va choisir a priori une correspondance entre valeurs et |
... | @@ -115,29 +115,29 @@ On suppose ici que l'on va choisir a priori une correspondance entre valeurs et |
|
| Légende par colorbar | Légende construite à partir des classes de valeurs|
|
|
| Légende par colorbar | Légende construite à partir des classes de valeurs|
|
|
|-------------------------------|----------------------------------------------------------|
|
|
|-------------------------------|----------------------------------------------------------|
|
|
|  |
|
|
|  |
|
|
```
|
|
| ![test_scatter_3]
|
|
|  |
|
|
| Colorbar basée sur la colormap continue discrétisée avec BoundaryNorm | méthode legend, arguments *points.legend_elements() |
|
|
| Colorbar basée sur la colormap continue discrétisée avec BoundaryNorm | méthode legend, arguments \*points.legend_elements() |
|
|
|
|
|
|
|
|
\`\`\`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'}
|
|
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'}
|
|
|
|
|
|
\# on place les valeurs du dictionnaire dans une liste de couleurs
|
|
# on place les valeurs du dictionnaire dans une liste de couleurs
|
|
cmap = colors.ListedColormap(list(DICO_COULEURS_MOIS.values()))
|
|
cmap = colors.ListedColormap(list(DICO_COULEURS_MOIS.values()))
|
|
\# on définit les limites de classe ; ici pour être sûr du résultat on place les limites entre les entiers et en plus ça permettra de bien tracer l'échelle ;
|
|
# on définit les limites de classe ; ici pour être sûr du résultat on place les limites entre les entiers et en plus ça permettra de bien tracer l'échelle ;
|
|
\# avec np.arange on crée un vecteur de 0.5 inclus à 13 exclu par pas de 1:
|
|
# avec np.arange on crée un vecteur de 0.5 inclus à 13 exclu par pas de 1:
|
|
bounds =np.arange(0.5,13,1)
|
|
bounds =np.arange(0.5,13,1)
|
|
norm = colors.BoundaryNorm(bounds, cmap.N) # cmap.N = nb de couleurs de cmap
|
|
norm = colors.BoundaryNorm(bounds, cmap.N) # cmap.N = nb de couleurs de cmap
|
|
plt.scatter(dates, liste_mois, c=liste_mois, cmap=cmap, norm=norm, s=\[4 \* (date.year - 1990) for date in dates\], edgecolor='none')
|
|
plt.scatter(dates, liste_mois, c=liste_mois, cmap=cmap, norm=norm, s=\[4 \* (date.year - 1990) for date in dates\], edgecolor='none')
|
|
|
|
|
|
\# on place les ticks de 1 à 12 (13 exclus) ; les limites de classe sont issues de bounds
|
|
# on place les ticks de 1 à 12 (13 exclus) ; les limites de classe sont issues de bounds
|
|
cbar = plt.colorbar(ticks=range(1,13), label="code couleur des mois")
|
|
cbar = plt.colorbar(ticks=range(1,13), label="code couleur des mois")
|
|
|
|
|
|
\# facultatif : autre moyen d'écrire une légende customisée, en définissant la localisation du texte (= les 5 premières lettres de la couleur)
|
|
# facultatif : autre moyen d'écrire une légende customisée, en définissant la localisation du texte (= les 5 premières lettres de la couleur)
|
|
for mois in range(1,13):
|
|
for mois in range(1,13):
|
|
cbar.ax.text(1.5, mois, f"{DICO_COULEURS_MOIS\[mois\]\[0:5\]}", ha='center', va='center')
|
|
cbar.ax.text(1.5, mois, f"{DICO_COULEURS_MOIS\[mois\]\[0:5\]}", ha='center', va='center')
|
|
plt.title("test 4")
|
|
plt.title("test 4")
|
|
plt.show() |
|
|
plt.show()
|
|
|
|
```
|
|
|
|
|
|
| ListedColorMap : colormap discrète définie par une liste | header |
|
|
| ListedColorMap : colormap discrète définie par une liste | header |
|
|
|----------------------------------------------------------|--------|
|
|
|----------------------------------------------------------|--------|
|
... | | ... | |