Cet article explique comment créer un nuage de points en Python en utilisant matplotlib, où chaque couleur représente un niveau catégoriel différent. Cette approche évite d'utiliser des packages de traçage auxiliaires comme seaborn et ggplot pour Python.
Matplotlib fournit l'argument c dans plt.scatter, qui permet la personnalisation des couleurs. Voici un exemple :
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()
La fonction map(colors) mappe les couleurs du "diamant" aux couleurs du "traçage".
Bien que cet article se concentre sur matplotlib , il convient de mentionner que seaborn propose également une solution pratique :
import seaborn as sns
# Scatter plot with colors
sns.lmplot(x='carat', y='price', data=df, hue='color', fit_reg=False)
Pour une approche manuelle, vous pouvez utiliser des pandas pour regrouper par couleur et tracer chaque groupe séparément :
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()
Cela suppose le même DataFrame qu'avant et attribue manuellement les couleurs pendant le processus de traçage.
Cet article a montré comment tracer différentes couleurs pour différents niveaux catégoriels en Python en utilisant matplotlib, ainsi que des options supplémentaires utilisant seaborn et une approche manuelle avec pandas.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3