Ich bin mir sicher, dass ich hier etwas wirklich einfaches vermasseln, aber ich kann es nicht herausfinden. Ich versuche einfach, Datengruppen als Streudiagramme mit verschiedenen Farben für jede Gruppe darzustellen, indem ich durch einen Datenrahmen blättern und wiederholt ax.scatter
aufrufen. Ein minimales Beispiel ist:Unerwartete Farben in mehreren Streudiagrammen in Matplotlib
import numpy as np; import pandas as pd; import matplotlib.pyplot as plt; import seaborn as sns
%matplotlib inline
df = pd.DataFrame({"Cat":list("AAABBBCCC"), "x":np.random.rand(9), "y":np.random.rand(9)})
fig, ax = plt.subplots()
for i,cat in enumerate(df.Cat.unique()):
print i, cat, sns.color_palette("husl",3)[i]
ax.scatter(df[df.Cat==cat].x.values, df[df.Cat==cat].y.values, marker="h",s=70,
label = cat, color=sns.color_palette("husl",3)[i])
ax.legend(loc=2)
ich die print
Erklärung für meine eigene geistige Gesundheit hinzugefügt, um zu bestätigen, dass ich in die Tat durch die Gruppen am Radfahren und verschiedene Farben wählen. Die Ausgabe sieht jedoch wie folgt:
(Wenn dies etwas ist schwer zu sehen: die Gruppen A, B und C haben drei sehr ähnlichen Blues nach der Legende, aber alle scatterpoints haben unterschiedliche und scheinbar nicht verwandte Farben, die über die Gruppen hinweg nicht einmal identisch sind)
Was ist hier los?
Wow! Gut, es selbst herauszufinden. –