Ich habe nach einer Lösung gesucht, wie man Punkte in einem Punktdiagramm in Abhängigkeit vom Wert einer 'dritten' Spalte setzt. Ich konnte keine fertige Lösung finden, also habe ich meine eigene gebaut, und ich möchte sie teilen (vielleicht wird jemand sie nutzen) :) Wenn dies kein Ort ist, um es zu posten, dann tut es mir leid und bitte entferne es.Pandas/Python/Matplotlib Streudiagramm Marker Farbe abhängig von einem Wert aus einer Zelle
Nehmen wir an, dass es ein Datenrahmen ‚scatterData‘ ist wie folgt:
lad2014_name Male Female Result
0 ABERDEEN CITY 95154 97421 -21.78
1 ABERDEENSHIRE 101875 105141 -13.10
2 ADUR 24047 26574 -16.16
3 ALLERDALE 38346 40192 -44.56
.
.
.
499 AMBER VALLEY 48720 51502 -3.56
ich plotten möchten die männlichen und weiblichen auf einem Streudiagramm, aber ich möchte auch zeigen, ob das ‚Ergebnis‘ negativ oder positiv, indem Sie die Farbe des Markers ändern. So habe ich das getan:
def resultColour(z):
colour = '#e31a1c'
if z > 0:
colour = '#1f78b4'
return colour
#Plotting the scatter plot
plt.figure(figsize=(12,10))
for index, row in scatterData.iterrows():
x = row.Male
z = row.Result
y = row.Female
t = resultColour(z)
plt.scatter(x, y, c=t,s=85)
plt.xlabel('X axis lable',fontsize=15)
plt.ylabel('Y axis lable',fontsize=15)
plt.title('Plot title',fontsize=18)
plt.plot()
Es erzeugt Streu wie unten
Danke. Das führt zwar zu dem gleichen Ergebnis wie meine Lösung, ist aber viel einfacher und eleganter. – Sylvekk