Maison >développement back-end >Tutoriel Python >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 ?

DDD
DDDoriginal
2024-10-17 16:40:03463parcourir

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 :

<code class="python">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()</code>

La fonction map(colors) mappe les couleurs "diamant" aux couleurs "traçage".

Avec seaborn

Bien que cet article se concentre sur matplotlib, il convient de mentionner que seaborn propose également une solution pratique :

<code class="python">import seaborn as sns

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

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

Pour une approche manuelle, vous pouvez utiliser pandas pour regrouper par couleur et tracer chaque groupe séparément :

<code class="python">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()</code>

Cela suppose le même DataFrame qu'avant et attribue manuellement les couleurs pendant le processus de traçage.

Conclusion

Cet article a démontré comment tracer différentes couleurs pour différents niveaux catégoriels en Python à l'aide de matplotlib, ainsi que des options supplémentaires utilisant seaborn et une approche manuelle avec pandas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn