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