„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 08.11.2024
Durchsuche:605

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: „Höhe“, „Gewicht“ und „Geschlecht“.

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),
})

Aktualisierung im August 2021

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

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

Alte Antwort (2015)

Wenn Sie Matplotlib direkt verwenden möchten, müssen Sie die Scatter-Funktion von Matplotlib den Kategorien eines Pandas DataFrame zuordnen . Gehen Sie dazu folgendermaßen 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 Scatter-Funktion, um die Daten darzustellen, und geben Sie die Farbspalte als „c“ an. argument.
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')

Indem Sie diese Schritte befolgen, können Sie mit Pandas und Matplotlib ganz einfach Streudiagramme basierend auf Spaltenwerten einfärben.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729320559 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3