Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ordne ich Punkten in Streudiagrammen basierend auf Spaltenwerten in Python Farben zu?

Wie ordne ich Punkten in Streudiagrammen basierend auf Spaltenwerten in Python Farben zu?

Susan Sarandon
Susan SarandonOriginal
2024-10-19 14:49:02747Durchsuche

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

Färben von Streudiagrammen nach Spaltenwerten in Python

Die Vielseitigkeit von ggplot2 in R ermöglicht eine nahtlose Zuweisung von Farben zu Datenpunkten basierend auf Spalten Werte. Diese Funktion kann auch in Python mithilfe von Pandas-Datenrahmen und Matplotlib repliziert werden.

Verwendung von Pandas und Matplotlib

Um Farben Werten in Matplotlib zuzuordnen, beachten Sie die folgenden Schritte:

  1. Erstellen Sie ein Farbwörterbuch: Definieren Sie ein Wörterbuch, das eindeutige Werte in der kategorialen Spalte einer entsprechenden Farbe zuordnet. Dies stellt eine konsistente Farbzuweisung über alle Datenpunkte hinweg sicher.
  2. Eine Farbspalte hinzufügen: Erstellen Sie eine neue Spalte im Datenrahmen, die jedem Wert in der kategorialen Spalte die entsprechende Farbe zuweist.
  3. Zeichnen Sie das Streudiagramm: Verwenden Sie den c-Parameter in matplotlib.pyplot.scatter, um die Farbspalte als Farbargument anzugeben.

Hier ist eine Beispielimplementierung:

<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>

Beispielverwendung

Stellen Sie sich einen Datenrahmen mit den Spalten „Größe“, „Gewicht“ und „Geschlecht“ vor. So erstellen Sie ein Streudiagramm, in dem Farben basierend auf der Spalte „Geschlecht“ zugewiesen werden:

<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>

Dadurch wird ein Streudiagramm erstellt, in dem die Spalte „Geschlecht“ die Farbe jedes Datenpunkts bestimmt.

Das obige ist der detaillierte Inhalt vonWie ordne ich Punkten in Streudiagrammen basierend auf Spaltenwerten in Python Farben zu?. 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