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