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 Farben zuweist zu Punkten basierend auf einer kategorialen Spalte:
<code class="python">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</code>
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:
<code class="python">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"]})</code>
Aufruf der dfScatter-Funktion mit dem Datenrahmen:
<code class="python">fig = dfScatter(df) fig.savefig('color_coded_scatterplot.png')</code>
Erzeugt ein Streudiagramm, in dem Punkte nach Geschlecht gefärbt sind:
[Bild des nach Geschlecht gefärbten Streudiagramms]
Die erweiterten Funktionen von Seaborn und die Die benutzerdefinierte dfScatter-Funktion bietet flexible Optionen zum Hinzufügen von Farbcodierung zu Streudiagrammen in Python, wodurch die Datenvisualisierung informativer und visuell ansprechender wird.
Das obige ist der detaillierte Inhalt vonWie kodiere ich Streudiagramme nach Spaltenwerten in Python farblich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!