Aqui está um exemplo
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
Aqui você está definindo a cor com base no índice,, t
que é apenas uma matriz de [1, 2, ..., 100]
.
Talvez um exemplo mais fácil de entender seja o ligeiramente mais simples
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()
Observe que o array que você passou c
não precisa ter nenhuma ordem ou tipo específico, ou seja, não precisa ser classificado ou inteiro como nesses exemplos. A rotina de plotagem escalará o mapa de cores de forma que os valores mínimo / máximo c
correspondam à parte inferior / superior do mapa de cores.
Colormaps
Você pode alterar o mapa de cores adicionando
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
A importação matplotlib.cm
é opcional, pois você também pode chamar mapas de cores cmap="cmap_name"
. Há uma página de referência de mapas de cores mostrando a aparência de cada um. Saiba também que você pode reverter um mapa de cores simplesmente chamando-o de cmap_name_r
. Então também
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
vai funcionar. Os exemplos são "jet_r"
ou cm.plasma_r
. Aqui está um exemplo com o novo 1.5 colormap viridis:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()
Colorbars
Você pode adicionar uma barra de cores usando
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Observe que se você estiver usando figuras e subtramas explicitamente (por exemplo, fig, ax = plt.subplots()
ou ax = fig.add_subplot(111)
), adicionar uma barra de cores pode ser um pouco mais complicado. Bons exemplos podem ser encontrados aqui para uma única barra de cores de subtramas e aqui para 2 subtramas 1 barra de cores .
plt.colorbar()
comando.