"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo uso Matplotlib para trazar colores distintos para varios niveles categóricos?

¿Cómo uso Matplotlib para trazar colores distintos para varios niveles categóricos?

Publicado el 2024-11-04
Navegar:173

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

Cómo trazar diferentes colores para diferentes niveles categóricos en Python usando solo Matplotlib

Introducción

Este artículo aborda cómo crear un diagrama de dispersión en Python usando matplotlib, donde cada color representa un nivel categórico diferente. Este enfoque evita el uso de paquetes de trazado auxiliares como seaborn y ggplot para Python.

Con Matplotlib

Matplotlib proporciona el argumento c en plt.scatter, que permite la personalización del color. Aquí hay un ejemplo:

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 función map(colors) asigna los colores de "diamante" a los colores de "trazado".

Con seaborn

Aunque este artículo se centra en matplotlib Vale la pena mencionar que seaborn también ofrece una solución conveniente:

import seaborn as sns

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

Con pandas.DataFrame.groupby & pandas.DataFrame.plot

Para un enfoque manual, puedes usar pandas para agrupar por color y trazar cada grupo por separado:

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

Esto supone el mismo DataFrame que antes y asigna colores manualmente durante el proceso de trazado.

Conclusión

Este artículo ha demostrado cómo trazar diferentes colores para diferentes niveles categóricos en Python usando matplotlib, junto con opciones adicionales usando seaborn y un enfoque manual con pandas.

Declaración de liberación Este artículo se reimprime en: 1729154360 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3