Je trace actuellement un nuage de points basé sur deux colonnes de données. Cependant, je voudrais colorer les points de données en fonction d'une étiquette de classe que j'ai dans une troisième colonne.
Les étiquettes dans ma troisième colonne sont 1,2 ou 3. Comment colorer les points du nuage de points en fonction des valeurs de cette troisième colonne?
plt.scatter(waterUsage['duration'],waterUsage['water_amount'])
plt.xlabel('Duration (seconds)')
plt.ylabel('Water (gallons)')
La fonction scatter
prend heureusement une liste de nombres représentant la couleur. Vous pouvez également jouer avec une palette de couleurs si vous le souhaitez (mais ce n'est pas obligatoire):
plt.scatter(waterUsage['duration'], waterUsage['water_amount'],\
c=waterUsage['third_column'], cmap=plt.cm.autumn)
ajoutez une autre entrée à votre dictionnaire "couleur"
def addcolor(b):
a=b
for x in range(len(a['third_column'])):
if a['third_column'][x]==1: a['color'][x]='rosybrown'
Elif a['third_column'][x]==2: a['color'][x]='papayawhip'
Elif a['third_column'][x]==3: a['color'][x]='chartreuse'
return a
waterUsage = addcolor(waterUsage)
plt.scatter(waterUsage['duration'],
waterUsage['water_amount'],
c=waterUsage['color'])
matplotlib accepte les couleurs en niveaux de gris, rgb, hex et html:
http://matplotlib.org/api/colors_api.html
liste de couleurs html, par groupe: