"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 atribuir cores a pontos em gráficos de dispersão com base nos valores das colunas em Python?

Como atribuir cores a pontos em gráficos de dispersão com base nos valores das colunas em Python?

Publicado em 2024-11-10
Navegar:590

How to Assign Colors to Points in Scatter Plots Based on Column Values in Python?

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

A versatilidade do ggplot2 em R permite a atribuição perfeita de cores a pontos de dados com base na coluna valores. Este recurso também pode ser replicado em Python usando dataframes pandas e Matplotlib.

Usando Pandas e Matplotlib

Para mapear cores para valores em Matplotlib, considere as seguintes etapas:

  1. Criar um dicionário de cores: Defina um dicionário que mapeie valores exclusivos na coluna categórica para uma cor correspondente. Isso garante uma atribuição de cores consistente entre os pontos de dados.
  2. Adicionar uma coluna de cores: crie uma nova coluna no dataframe que atribui a cor correspondente a cada valor na coluna categórica.
  3. Traçar o gráfico de dispersão: Use o parâmetro c em matplotlib.pyplot.scatter para especificar a coluna de cores como o argumento de cor.

Aqui está um exemplo de implementação:

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

Exemplo de uso

Considere um dataframe com colunas de altura, peso e gênero. Para criar um gráfico de dispersão onde as cores são atribuídas com base na coluna Gênero:

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)

Isso irá gerar um gráfico de dispersão onde a coluna Gênero determina a cor de cada ponto de dados.

Declaração de lançamento Este artigo foi reimpresso em: 1729320437 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