web-dev-qa-db-de.com

Farbstreudiagrammpunkte basierend auf einem Wert in der dritten Spalte?

Ich zeichne derzeit ein Streudiagramm auf der Grundlage von zwei Datenspalten. Ich möchte jedoch die Datenpunkte basierend auf einer Klassenbezeichnung, die ich in einer dritten Spalte habe, einfärben.

Die Beschriftungen in meiner dritten Spalte sind entweder 1,2 oder 3. Wie würde ich die Streudiagrammpunkte basierend auf den Werten in dieser dritten Spalte einfärben?

plt.scatter(waterUsage['duration'],waterUsage['water_amount'])
plt.xlabel('Duration (seconds)')
plt.ylabel('Water (gallons)')
5
Gary

Die Funktion scatter nimmt gerne eine Liste von Zahlen entgegen, die Farbe darstellen. Sie können auch mit einer Farbkarte spielen, wenn Sie möchten (müssen aber nicht):

plt.scatter(waterUsage['duration'], waterUsage['water_amount'],\
            c=waterUsage['third_column'], cmap=plt.cm.autumn)
9
DYZ

füge einen weiteren Eintrag zu deinem Wörterbuch "color" hinzu

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 akzeptiert Graustufen-, RGB-, Hex- und HTML-Farben:

http://matplotlib.org/api/colors_api.html

hTML-Farbliste, nach Gruppe:

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

0
litepresence