web-dev-qa-db-fra.com

Points du diagramme de dispersion des couleurs basés sur une valeur dans la troisième colonne?

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)')
12
Gary

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)
15
DYZ

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:

https://www.w3schools.com/colors/colors_groups.asp

2
litepresence