"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment utiliser Matplotlib pour tracer des couleurs distinctes pour différents niveaux catégoriels ?

Comment utiliser Matplotlib pour tracer des couleurs distinctes pour différents niveaux catégoriels ?

Publié le 2024-11-04
Parcourir:362

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

Comment tracer différentes couleurs pour différents niveaux catégoriels en Python en utilisant uniquement Matplotlib

Introduction

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.

Avec Matplotlib

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

Avec seaborn

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)

Avec pandas.DataFrame.groupby & pandas.DataFrame.plot

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.

Conclusion

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729154360. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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