scatter_matrix Fehler durch 'c'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hias_L
User
Beiträge: 15
Registriert: Dienstag 16. Juli 2019, 08:44

Hallo zusammen,

Python ist neu für mich. Vermutlich ist meine Frage eine Kleinigkeit für Euch.

Folgender Code:

grr_2018 = pd.plotting.scatter_matrix(dataSet_2018[cols_target_2018 + cols_ratio_2018]
,c = dataSet_target_2018 #c=solors für color?
,diagonal = 'kde' #ansonsten Standard = Histogram
,figsize=(20, 20) #Quadratgröße
,marker = 'o'
,hist_kwds={'bins' : 20}# Balkenbreite
,s = 60 #s=sizes
,alpha = 0.8)
plt.show()

verursacht folgenden Fehler: ValueError: 'c' argument must either be valid as mpl color(s) or as numbers to be mapped to colors. Here c = rel. Op. Ergebnis

Wenn ich c auskommentiere klappt es.

Vielen Dank und Gruß
Hias
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte code-tags verwenden, damit man den Code lesen kann. Im Vollstaendigen Editor den </>-Knopf benutzen.
Hias_L
User
Beiträge: 15
Registriert: Dienstag 16. Juli 2019, 08:44

Ok, klar. Sorry habe es vergessen.

Code: Alles auswählen

grr_2018 = pd.plotting.scatter_matrix(dataSet_2018[cols_target_2018 + cols_ratio_2018]
                                 ,c = dataSet_target_2018 
                                 ,diagonal = 'kde' 
                                 ,figsize=(20, 20) 
                                 ,marker = 'o'
                                 ,hist_kwds={'bins' : 20}
                                 ,s = 60
                                 ,alpha = 0.8)
plt.show()][/code
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Was ist denn `dataSet_target_2018` und woher kommt es? Es ist offensichtlich nichts, was matploblib als Farbe interpretieren kann.
Hias_L
User
Beiträge: 15
Registriert: Dienstag 16. Juli 2019, 08:44

`dataSet_target_2018` ist ein DataFrame mit der Größe (73,1) mit Werten wie z.B. 0.166049, 0.0746339, 0, -0.002679, ...

Das DataSet_2018 besteht nur aus Werten wie oben gezeigt.

Ich wollte folgendes Beispiel mit eigenen Werten nachvollziehen: https://data-science-blog.com/blog/2017 ... kit-learn/
Wenn ich das richtig verstehe, sollte über 'c' die Färbung verändert werden: Umso höher der dataSet_target_2018 Wert, umso heller die Färbung.

Abgesehen von der Färbung klappt es.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich weiss nicht was der Typ (der sich die wirklich uebelste Formatierung mit den fuehrenden Kommata ever ausgedacht hat) fuer daten hat, aber laut Dokumentation https://matplotlib.org/3.1.1/api/_as_ge ... atter.html ist fuer reellwertige Daten wie deine ein cmap und norm-Argument von Noeten.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Keine Ahnung ob das so mal funktioniert hat, aber der Dataframe kann so nicht mehr als Farbscala übergeben werden.
Einfach konvertieren und dann klappt es.

Code: Alles auswählen

c = dataSet_target.values.reshape(199,)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Hias_L
User
Beiträge: 15
Registriert: Dienstag 16. Juli 2019, 08:44

Vielen Dank für die Hilfe klappt jetzt einwandfrei!

Schönen Tag und Gruß
Hias
Antworten