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

DDD
Libérer: 2024-10-17 16:40:03
original
426 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal