Heim > Artikel > Backend-Entwicklung > Wie färbe ich Streudiagramme nach Spaltenwerten in Python ein?
Färben von Streudiagrammen nach Spaltenwerten
In Python bietet die Matplotlib-Bibliothek mehrere Möglichkeiten zum Anpassen der Streudiagrammästhetik. Eine häufige Aufgabe ist die Zuweisung von Farben basierend auf Werten in einer bestimmten Spalte.
Seaborn-Integration
Eine Lösung besteht darin, die Seaborn-Bibliothek zu nutzen, die auf Matplotlib aufbaut. Seaborn bietet High-Level-Funktionen wie sns.relplot und sns.FacetGrid, mit denen Sie Streudiagramme einfach bestimmten Spalten zuordnen können. Durch Angabe des Farbtonparameters können Sie Punkte entsprechend einer dritten Spalte mit Kategoriebezeichnungen einfärben.
<code class="python">import seaborn as sns sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')</code>
Direkte Verwendung von Matplotlib
Alternativ können Sie Matplotlibs direkt verwenden plt.scatter-Funktion zum Erstellen von Streudiagrammen und zum manuellen Festlegen von Farben. Dazu ist die Erstellung eines benutzerdefinierten Farbwörterbuchs erforderlich, das Kategoriebeschriftungen Farben zuordnet.
<code class="python">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>
Durch Aufrufen dieser Funktion können Sie ein Streudiagramm generieren, das anhand der angegebenen Kategoriespalte gefärbt ist:
<code class="python">df = pd.DataFrame({'Height': np.random.normal(size=10), 'Weight': np.random.normal(size=10), 'Gender': ["Male", "Male", "Unknown", "Male", "Male", "Female", "Did not respond", "Unknown", "Female", "Female"]}) fig = dfScatter(df)</code>
Das obige ist der detaillierte Inhalt vonWie färbe ich Streudiagramme nach Spaltenwerten in Python ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!