Definir Cor para Scatterplot em Matplotlib
Para definir a cor dos marcadores em Matplotlib, definimos o parâmetro c
no método matplotlib.pyplot.scatter()
.
Definir a cor de um marcador no método Scatterplot
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 1, 4, 7, 4, 3, 2]
plt.scatter(x, y, c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()
Resultado:
Aqui, definimos a cor de todos os marcadores nos scatterplots para vermelho, definindo c="red"
no método scatter()
.
Se tivermos dois conjuntos de dados diferentes, podemos utilizar cores diferentes para cada conjunto de dados, utilizando os diferentes valores do parâmetro c
.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [2, 1, 4, 7, 4, 3, 2]
y2 = [4, 4, 5, 3, 8, 9, 6]
plt.scatter(x, y1, c="red")
plt.scatter(x, y2, c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()
Resultado:
Aqui, o array de dados y1
é representado no gráfico de dispersão pela cor vermelha enquanto o array de dados y2
é representado no gráfico de dispersão pela cor verde.
Será difícil atribuir cor manualmente de cada vez a cada conjunto de dados se houver um grande número de conjuntos de dados. Nesses casos, podemos utilizar colormap
para gerar as cores para cada conjunto de dados.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset, color in zip(y, colors):
plt.scatter(x, dataset, color=color)
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Resultado:
Gera cores diferentes para cada linha do array y
e traça cada linha com uma cor diferente.
Em vez de utilizar o mapa de cores gerado, podemos também especificar cores a serem utilizadas para gráficos de dispersão numa lista e passar a lista para o método itertools.cycle()
para fazer um bucle de cores personalizado. Para iterar sobre a cor, utilizamos a função next()
.
import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
color_cycle = itertools.cycle(
["orange", "pink", "blue", "brown", "red", "grey", "yellow", "green"]
)
for row in y:
plt.scatter(x, row, color=next(color_cycle))
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Resultado:
O método itertools.cycle()
irá criar uma lista cíclica de cores do array de cores dado, e cada linha é traçada no gráfico de dispersão escolhendo uma cor da lista cíclica.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Matplotlib Scatter Plot
- Como plotar a lista de coordenadas X,y em Matplotlib
- Fazer a Lenda do Terreno de Dispersão em Matplotlib
- Pontos de dispersão de etiquetas Matplotlib
- Pontos de Lote em Matplotlib