Criar Colormap invertido em Python Matplotlib

Suraj Joshi 30 janeiro 2023
  1. Colormaps em Python Matplotlib
  2. Inverter Colormaps em Matplotlib Python com _r
  3. Inverter Colormaps em Matplotlib Python Com matplotlib.colors.Colormap.reverse()
Criar Colormap invertido em Python Matplotlib

O Colormap é uma forma simples de mapear os valores dos dados para as cores. Inverter o mapa de cores significa reverter o mapa de cores de cada valor. Suponhamos que temos um mapa de cores em que valores mais baixos são mapeados para a cor amarela, e valores mais altos são mapeados para a cor vermelha. Invertendo o mapa de cores, os valores mais baixos são agora mapeados para a cor vermelha, e os valores mais altos para a cor amarela. Este tutorial explica várias formas de inverter o mapa de cores em Python Matplotlib.

Colormaps em Python Matplotlib

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]

plt.scatter(x, y, c=y, cmap="viridis")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Virdis colormap")
plt.colorbar()
plt.show()

Resultado:

Colormaps em Matplotlib Python

Cria um gráfico de dispersão cujos valores y são mapeados para o mapa de cores viridis. Isto significa que os pontos com valores mais baixos de y terão a cor azul escuro, os pontos com valores mais altos de y terão a cor amarela, e os pontos intermediários terão as cores azul e verde.

Podemos também ver uma barra de cores no lado direito da figura, que mostra o mapa de cores para os diferentes valores de y.

Inverter Colormaps em Matplotlib Python com _r

Podemos inverter um mapa de cores adicionando _r no final do nome do mapa de cores em Matplotlib. por exemplo cmap='viridis_r' irá simplesmente inverter o mapa de cores viridis.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]

plt.scatter(x, y, c=y, cmap="viridis_r")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()

Resultado:

Inverter Colormaps em Matplotlib Python adicionando _r no final

Cria um gráfico de dispersão cujos valores y são mapeados para o mapa de cores invadido viridis. Assim, os pontos com valores mais altos na figura obtêm a cor azul escuro, e os pontos com valores mais baixos obtêm a cor amarela.

Também podemos ver que a barra de cor à direita inverteu a cor neste exemplo.

Inverter Colormaps em Matplotlib Python Com matplotlib.colors.Colormap.reverse()

Outra forma de inverter o colormap em Python é utilizar o método matplotlib.colors.Colormap.reverse() para criar o colormap invertido.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]

initial_cmap = cm.get_cmap("viridis")
reversed_cmap = initial_cmap.reversed()

plt.scatter(x, y, c=y, cmap=reversed_cmap)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()

Resultado:

Inverter Colormaps em Matplotlib Python utilizando o método inverso

Também cria um gráfico de dispersão cujos valores y são mapeados para o mapa de cores viridis invertido. O método reverse() inverte o objecto do mapa de cores ao qual o método é aplicado.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap

x = np.arange(9)
y = [9, 2, 8, 4, 5, 7, 6, 8, 7]

initial_cmap = cm.get_cmap("viridis")
reversed_cmap = ListedColormap(initial_cmap.colors[::-1])

plt.scatter(x, y, c=y, cmap=reversed_cmap)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot with Inverse Virdis colormap")
plt.colorbar()
plt.show()

Resultado:

Inverter Colormaps em Matplotlib Python invertendo a lista de cores

Também cria um gráfico de dispersão cujos valores y são mapeados para o mapa de cores “viridis” invertido. Qualquer mapa de cores é apenas uma lista de cores. Podemos aceder à lista de cores de um mapa de cores cmap utilizando cmap.colors. Invertemos então a lista e finalmente convertemos a lista invertida novamente num mapa de cores utilizando a função ListedColormap() do pacote matplotlib.colors.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn