"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 colorir gráficos de dispersão por valores de coluna em Python?

Como colorir gráficos de dispersão por valores de coluna em Python?

Publicado em 2024-11-08
Navegar:184

How to Color Scatter Plots by Column Values in Python?

Colorindo gráficos de dispersão por valores de coluna

Em Python, a biblioteca Matplotlib fornece vários meios de personalizar a estética do gráfico de dispersão. Uma tarefa comum é atribuir cores com base em valores em uma coluna específica.

Seaborn Integration

Uma solução é aproveitar a biblioteca Seaborn, que se baseia no Matplotlib. Seaborn oferece funções de alto nível como sns.relplot e sns.FacetGrid que permitem mapear facilmente gráficos de dispersão em colunas específicas. Ao especificar o parâmetro hue, você pode colorir pontos de acordo com uma terceira coluna contendo rótulos de categoria.

import seaborn as sns

sns.relplot(data=df, x='Weight (kg)', y='Height (cm)', hue='Gender')

Diretamente usando Matplotlib

Como alternativa, você pode usar diretamente a função plt.scatter do Matplotlib para criar gráficos de dispersão e especificar cores manualmente. Isso requer a criação de um dicionário de cores personalizado que mapeia rótulos de categoria para cores.

def dfScatter(df, xcol='Height', ycol='Weight', catcol='Gender'):
    fig, ax = plt.subplots()

    categories = np.unique(df[catcol])
    colors = np.linspace(0, 1, len(categories))
    colordict = dict(zip(categories, colors))

    df['Color'] = df[catcol].apply(lambda x: colordict[x])
    ax.scatter(df[xcol], df[ycol], c=df.Color)
    return fig

Ao chamar esta função, você pode gerar um gráfico de dispersão colorido pela coluna de categoria especificada:

df = pd.DataFrame({'Height': np.random.normal(size=10),
                   'Weight': np.random.normal(size=10),
                   'Gender': ["Male", "Male", "Unknown", "Male", "Male",
                              "Female", "Did not respond", "Unknown", "Female", "Female"]})
fig = dfScatter(df)
Declaração de lançamento Este artigo foi reimpresso em: 1729320496 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