Heim  >  Artikel  >  Backend-Entwicklung  >  Können Sie Streudiagramme basierend auf bestimmten Spaltenwerten in Pandas mit Matplotlib einfärben?

Können Sie Streudiagramme basierend auf bestimmten Spaltenwerten in Pandas mit Matplotlib einfärben?

Barbara Streisand
Barbara StreisandOriginal
2024-10-19 14:50:02847Durchsuche

Can You Color Scatter Plots Based on Specific Column Values in Pandas with Matplotlib?

Färben von Streudiagrammen nach Spaltenwerten mit Pandas und Matplotlib

Matplotlib ist eine beliebte Python-Bibliothek zum Erstellen statischer, animierter und interaktiver Visualisierungen in Python. In diesem Artikel wird die Verwendung von Matplotlib zum Einfärben von Streudiagrammen basierend auf Werten in einer bestimmten Spalte eines Pandas DataFrame untersucht.

Importe und Daten

Zunächst importieren wir die erforderlichen Bibliotheken , einschließlich Matplotlib (als plt) und Pandas (als pd). Wir generieren außerdem einen Beispiel-DataFrame („df“) mit drei Spalten: „Größe“, „Gewicht“ und „Geschlecht“.

<code class="python">import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

np.random.seed(0)
N = 37
_genders = ["Female", "Male", "Non-binary", "No Response"]
df = pd.DataFrame({
    "Height (cm)": np.random.uniform(low=130, high=200, size=N),
    "Weight (kg)": np.random.uniform(low=30, high=100, size=N),
    "Gender": np.random.choice(_genders, size=N),
})</code>

Aktualisierung im August 2021

Seaborn hat in Version 0.11.0 neue Funktionen auf Figurenebene eingeführt, wie zum Beispiel seaborn.relplot. Diese Funktionen werden gegenüber der direkten Verwendung von FacetGrid empfohlen.

<code class="python">sns.relplot(data=df, x="Weight (kg)", y="Height (cm)", hue="Gender", hue_order=_genders, aspect=1.61)
plt.show()</code>

Alte Antwort (2015)

Wenn Sie Matplotlib direkt verwenden möchten, müssen Sie Matplotlibs zuordnen Streufunktion auf die Kategorien eines Pandas DataFrame. Gehen Sie dazu wie folgt vor:

  • Erstellen Sie ein Wörterbuch mit eindeutigen Kategorien aus der Spalte und den Farben.
  • Fügen Sie dem DataFrame eine neue Spalte „Farbe“ hinzu und weisen Sie jeder Kategorie eine entsprechende Farbe zu.
  • Verwenden Sie die Streufunktion, um die Daten darzustellen, und geben Sie dabei die Farbspalte als „c“-Argument an.
<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

fig = dfScatter(df)
fig.savefig('fig1.png')</code>

Durch Befolgen dieser Schritte können Sie Streudiagramme ganz einfach farbig darstellen Spaltenwerte mit Pandas und Matplotlib.

Das obige ist der detaillierte Inhalt vonKönnen Sie Streudiagramme basierend auf bestimmten Spaltenwerten in Pandas mit Matplotlib einfärben?. 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