„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 > Wie verwende ich Matplotlib, um unterschiedliche Farben für verschiedene kategoriale Ebenen darzustellen?

Wie verwende ich Matplotlib, um unterschiedliche Farben für verschiedene kategoriale Ebenen darzustellen?

Veröffentlicht am 04.11.2024
Durchsuche:547

How Do I Use Matplotlib to Plot Distinct Colors for Various Categorical Levels?

So zeichnen Sie verschiedene Farben für verschiedene kategoriale Ebenen in Python nur mit Matplotlib

Einführung

In diesem Artikel wird beschrieben, wie Sie ein Streudiagramm in Python erstellen Verwenden von Matplotlib, wobei jede Farbe eine andere kategoriale Ebene darstellt. Dieser Ansatz vermeidet die Verwendung zusätzlicher Plotpakete wie seaborn und ggplot für Python.

Mit Matplotlib

Matplotlib stellt das c-Argument in plt.scatter bereit, das eine Farbanpassung ermöglicht. Hier ist ein Beispiel:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Scatter plot with colors
plt.scatter(df['carat'], df['price'], c=df['color'].map(colors))
plt.show()

Die Funktion „map(colors)“ ordnet die „Diamant“-Farben den „Plot“-Farben zu.

Mit Seaborn

Obwohl sich dieser Artikel auf Matplotlib konzentriert Es ist erwähnenswert, dass Seaborn auch eine praktische Lösung bietet:

import seaborn as sns

# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)

With pandas.DataFrame.groupby & pandas.DataFrame.plot

Für einen manuellen Ansatz können Sie Pandas verwenden, um nach Farbe zu gruppieren und jede Gruppe zu zeichnen separat:

import matplotlib.pyplot as plt
import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'carat': [0.23, 0.21, 0.23],
                    'price': [326, 326, 327],
                    'color': ['E', 'E', 'E']})

# Color mapping
colors = {'D': 'tab:blue', 'E': 'tab:orange', 'F': 'tab:green', 'G': 'tab:red', 'H': 'tab:purple', 'I': 'tab:brown', 'J': 'tab:pink'}

# Group by color and plot
grouped = df.groupby('color')
for key, group in grouped:
    group.plot(ax=plt.gca(), kind='scatter', x='carat', y='price', label=key, color=colors[key])

plt.show()

Dabei wird der gleiche DataFrame wie zuvor vorausgesetzt und die Farben werden während des Plotvorgangs manuell zugewiesen.

Fazit

Dieser Artikel hat gezeigt, wie man verschiedene Farben zeichnet verschiedene kategoriale Ebenen in Python mit Matplotlib, zusammen mit zusätzlichen Optionen mit Seaborn und einem manuellen Ansatz mit Pandas.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729154360 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