"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como uso o Matplotlib para plotar cores distintas para vários níveis categóricos?

Como uso o Matplotlib para plotar cores distintas para vários níveis categóricos?

Publicado em 2024-11-04
Navegar:938

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

Como plotar cores diferentes para diferentes níveis categóricos em Python usando apenas Matplotlib

Introdução

Este artigo aborda como criar um gráfico de dispersão em Python usando matplotlib, onde cada cor representa um nível categórico diferente. Essa abordagem evita o uso de pacotes auxiliares de plotagem como seaborn e ggplot para Python.

Com Matplotlib

Matplotlib fornece o argumento c em plt.scatter, que permite a personalização de cores. Aqui está um exemplo:

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

A função map(colors) mapeia as cores do "diamante" para as cores de "plotagem".

Com seaborn

Embora este artigo se concentre no matplotlib , vale ressaltar que o seaborn também oferece uma solução conveniente:

import seaborn as sns

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

Com pandas.DataFrame.groupby & pandas.DataFrame.plot

Para uma abordagem manual, você pode usar pandas para agrupar por cor e plotar cada grupo separadamente:

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

Isso pressupõe o mesmo DataFrame de antes e atribui cores manualmente durante o processo de plotagem.

Conclusão

Este artigo demonstrou como plotar cores diferentes para diferentes níveis categóricos em Python usando matplotlib, junto com opções adicionais usando seaborn e uma abordagem manual com pandas.

Declaração de lançamento Este artigo foi reimpresso em: 1729154360 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3