Farbcodierung von Streudiagrammen nach Spaltenwerten in Python
Bei der Datenvisualisierung kann die Zuweisung von Farben zu verschiedenen Kategorien die Klarheit verbessern und Muster erkennen lassen. Diese Funktionalität ist in ggplot2 für R leicht verfügbar, aber wie können wir dasselbe in Python mit Pandas und Matplotlib erreichen?
Update: Seaborn-Verbesserungen
Seit der ursprünglichen Antwort Seaborn hat sich zu einer leistungsstarken Bibliothek für die Erstellung informativer und optisch ansprechender Plots entwickelt. Die jüngsten Updates bieten praktische Funktionen zum Färben von Streudiagrammen basierend auf Spaltenwerten:
Original Pandas und Matplotlib Ansatz
Für diejenigen, die einen direkten Ansatz mit Matplotlib suchen, gibt es hier eine benutzerdefinierte Funktion, die Punkten basierend auf einer kategorialen Spalte Farben zuweist:
import matplotlib.pyplot as plt
import pandas as pd
def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
fig, ax = plt.subplots()
categories = np.unique(df[catcol])
colors = np.linspace(0, 1, len(categories))
colordict = dict(zip(categories, colors))
df["Color"] = df[catcol].apply(lambda x: colordict[x])
ax.scatter(df[xcol], df[ycol], c=df["Color"])
return fig
Diese Funktion erstellt ein Farbwörterbuch aus eindeutigen Kategoriewerten und weist Datenpunkten entsprechende Farben zu. Das Streudiagramm wird dann mit farbcodierten Punkten generiert.
Beispiel
Verwendung des bereitgestellten Beispieldatenrahmens:
df = pd.DataFrame({'Height': np.append(np.random.normal(6, 0.25, size=5), np.random.normal(5.4, 0.25, size=5)),
'Weight': np.append(np.random.normal(180, 20, size=5), np.random.normal(140, 20, size=5)),
'Gender': ["Male", "Male", "Male", "Male", "Male",
"Female", "Female", "Female", "Female", "Female"]})
Aufruf der dfScatter-Funktion mit dem Datenrahmen:
fig = dfScatter(df)
fig.savefig('color_coded_scatterplot.png')
Erzeugt ein Streudiagramm, in dem Punkte nach Geschlecht gefärbt sind:
[Bild des nach Geschlecht gefärbten Streudiagramms]
Seaborn's Advanced Funktionen und die benutzerdefinierte dfScatter-Funktion bieten flexible Optionen zum Hinzufügen von Farbcodierung zu Streudiagrammen in Python, wodurch die Datenvisualisierung informativer und visueller wird fesselnd.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3