Matplotlib: como colorir um gráfico de dispersão por valor


Freqüentemente, você pode querer sombrear a cor dos pontos em um gráfico de dispersão matplotlib com base em uma terceira variável. Felizmente, isso é fácil de fazer usando a função matplotlib.pyplot.scatter() , que usa a seguinte sintaxe:

matplotlib.pyplot.scatter(x, y, s=Nenhum, c=Nenhum, cmap=Nenhum)

Ouro:

  • x: Tabela de valores a serem utilizados para as posições do eixo x no gráfico.
  • y: array de valores a serem usados para as posições do eixo y no gráfico.
  • s: o tamanho do marcador.
  • c: Tabela de valores a serem usados para cores de marcadores.
  • cmap: Um mapa de cores para usar na plotagem.

Você pode usar c para especificar uma variável a ser usada para os valores de cores e pode usar cmap para especificar as cores reais a serem usadas para os marcadores na nuvem de pontos.

Este tutorial explica vários exemplos de uso prático desta função.

Exemplo 1: Pontos de dispersão coloridos por valor

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': [3, 4, 4, 5, 7, 8, 8, 9]})

#view DataFrame
df

        X Y Z
0 25 5 3
1 12 7 4
2 15 7 4
3 14 9 5
4 19 12 7
5 23 9 8
6 25 9 8
7 29 4 9

O código a seguir mostra como criar uma nuvem de pontos usando uma paleta de cores cinza e usando os valores da variável z como tonalidade da paleta de cores:

 import matplotlib.pyplot as plt

#create scatterplot
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')

Cor do gráfico de dispersão Matplotlib por valor

Para este exemplo específico, escolhemos a paleta de cores “cinza”, mas você pode encontrar uma lista completa de paletas de cores disponíveis para usar na documentação das paletas de cores matplotlib .

Por exemplo, poderíamos especificar “Verdes” como paleta de cores:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ') 

Gráfico de dispersão Matplotlib com cmap

Por padrão, os marcadores com valores maiores para o argumento c são sombreados mais escuros, mas você pode reverter essa tendência simplesmente adicionando _r ao nome do cmap:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ') 

Escala invertida da paleta de cores Matplotlib

Exemplo 2: pontos coloridos do gráfico de dispersão por categoria

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29],
                   'y': [5, 7, 7, 9, 12, 9, 9, 4],
                   'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})

#view DataFrame
df

	X Y Z
0 25 5 A
1 12 7 A
2 15 7 B
3 14 9 B
4 19 12 B
5 23 9 C
6 25 9 C
7 29 4 C

O código a seguir mostra como criar um gráfico de dispersão usando a variável z para colorir os marcadores com base na categoria:

 import matplotlib.pyplot as plt

groups = df. groupby ('z')
for name, group in groups:
    plt. plot (group.x, group.y, marker=' o ', linestyle='', markersize=12, label=name)

plt. legend ()

Gráfico de dispersão Matplotlib colorido por categoria

Você pode encontrar mais tutoriais de Python aqui .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *