Bonjour,
J'ai, semble-t-il, un "couac" avec un cmap. Et j'ai pas trouvé comment l'éviter.
voici le pb:
J'utilise ce code pour faire un plot d'un petit dataframe (nommé 'data', lui même issu d'une lecture d'un fichier excel)
je m'attendais à avoir mes 4 couleurs selon les 4 classes (qui sont dans la colonne data['time-stab']).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import pandas as pd import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap x = data['ID'] y = data['% peaks'] timeStab = data['time-stab'] # il n'y a que 4 classes [1, 30, 60, 170] dans les 11 lignes de cette colonne colors = ListedColormap(['black', 'red', 'blue', 'purple']) # je prépare donc 4 couleurs scatter = plt.scatter(x, y, c=timeStab, cmap=colors, s=100) plt.xticks(rotation=90) plt.grid(True) plt.legend(*scatter.legend_elements()) # la seule façon que j'ai trouvé d'afficher le bloc légende avec les couleurs du cmap... plt.show()
Mais j'ai eu cet affichage avec une couleur manquante et deux classes avec la même couleur.
Du coup j'ai utilisé une cmap prédéfinie et là ça passe..
donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 x = data['ID'] y = data['% peaks'] timeStab = data['time-stab'] # il n'y a que 4 classes [1, 30, 60, 170] dans les 11 lignes de cette colonne scatter = plt.scatter(x, y, c=timeStab, cmap='tab20b', s=100) # utilisation d'un cmap prédéfinie plt.xticks(rotation=90) plt.grid(True) plt.legend(*scatter.legend_elements()) # la seule façon que j'ai trouvé d'afficher le bloc légende. plt.show()
D'où vient ce "couac" et existe-t-il un moyen de l'éviter?
Merci pour votre temps .
Jma
Partager