Heim > Artikel > Backend-Entwicklung > Können Sie Streudiagramme basierend auf bestimmten Spaltenwerten in Pandas mit Matplotlib einfärben?
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:
<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!