Crear Colormap inverso en Python Matplotlib

Suraj Joshi 30 enero 2023
  1. Colormaps en Matplotlib Python
  2. Colormaciones inversas en Matplotlib Python con _r
  3. Invertir Colormaps en Matplotlib Python con matplotlib.colors.Colormap.reversed()
Crear Colormap inverso en Python Matplotlib

El Colormap es una forma sencilla de mapear los valores de los datos a los colores. Invertir el mapa de colores significa invertir el mapa de colores de cada valor. Supongamos que tenemos un mapa de colores en el que los valores más bajos se asignan al color amarillo, y los valores más altos se asignan al color rojo. Invirtiendo el mapa de colores, los valores inferiores se asignan ahora al color rojo y los valores superiores al color amarillo. Este tutorial explica varias formas de invertir los mapas de colores en Python Matplotlib.

Colormaps en Matplotlib Python

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()

Producción:

Colormaps en Matplotlib Python

Crea un gráfico de dispersión cuyos valores y son mapeados al mapa de colores viridis. Significa que los puntos con valores bajos de y tendrán el color azul oscuro, los puntos con valores altos de y tendrán el color amarillo, y los puntos intermedios tendrán los colores azul y verde.

También podemos ver una barra de color en el lado derecho de la figura, que muestra el mapa de colores para los diferentes valores de y.

Colormaciones inversas en Matplotlib Python con _r

Podemos invertir un mapa de color añadiendo _r al final del nombre del mapa de color en Matplotlib. Por ejemplo, cmap='viridis_r' simplemente invertirá el mapa de color 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()

Producción:

Invierta los colapsos en Matplotlib Python añadiendo _r al final

Crea un gráfico de dispersión cuyos valores y son mapeados al mapa de colores invertidos de viridis. Por lo tanto, los puntos con valores más altos en la figura obtienen el color azul oscuro, y los puntos con valores más bajos obtienen el color amarillo.

También podemos ver que la barra de color de la derecha ha invertido el color en este ejemplo.

Invertir Colormaps en Matplotlib Python con matplotlib.colors.Colormap.reversed()

Otra forma de invertir el mapa de colores en Python es usar el método matplotlib.colors.Colormap.reversed() para crear el mapa de colores 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()

Producción:

Invertir Colormaps en Matplotlib Python usando el método reversed

También crea un gráfico de dispersión cuyos valores y son mapeados al mapa de color invertido de viridis. El método reversed() invierte el objeto del mapa de colores al que se aplica el método.

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()

Producción:

Revertir Colormaps en Matplotlib Python invirtiendo la lista de colores

También crea un gráfico de dispersión cuyos valores y son mapeados al mapa de color invertido de viridis. Cualquier mapa de color es sólo una lista de colores. Podemos acceder a la lista de colores de un mapa de color cmap usando cmap.colors. Luego invertimos la lista y finalmente convertimos la lista invertida de nuevo en un mapa de colores usando la función ListedColormap() del paquete matplotlib.colors.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn