Heim  >  Artikel  >  Backend-Entwicklung  >  Wie färbe ich Streudiagramme nach Spaltenwerten in Python ein?

Wie färbe ich Streudiagramme nach Spaltenwerten in Python ein?

DDD
DDDOriginal
2024-10-19 14:48:30350Durchsuche

How to Color Scatter Plots by Column Values in Python?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn