Créer un Colormap inversé en Python Matplotlib

Suraj Joshi 15 février 2024
  1. Cartes de couleurs en Python Matplotlib
  2. Inversion des couleurs dans Matplotlib Python avec _r
  3. Inverser les couleurs dans Matplotlib Python avec matplotlib.colors.Colormap.reversed()
Créer un Colormap inversé en Python Matplotlib

Le Colormap est un moyen simple de faire correspondre des valeurs de données à des couleurs. L’inversion de la carte des couleurs signifie l’inversion de la carte des couleurs de chaque valeur. Supposons que nous ayons une carte des couleurs dans laquelle les valeurs inférieures sont mises en correspondance avec la couleur jaune, et les valeurs supérieures avec la couleur red. En inversant la carte des couleurs, les valeurs les plus basses sont maintenant mises en correspondance avec la couleur red et les valeurs plus élevées avec la couleur jaune. Ce tutoriel explique les différentes façons d’inverser les cartes de couleurs dans Python Matplotlib.

Cartes de couleurs en 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()

Production :

Colormaps en Python Matplotlib

Il crée un nuage de points dont les valeurs y sont mises en correspondance avec la carte de couleurs viridis. Cela signifie que les points ayant des valeurs de y inférieures auront la couleur bleu foncé, les points ayant des valeurs de y supérieures auront la couleur jaune, et les points intermédiaires auront les couleurs blue et green.

Nous pouvons également voir une barre de couleur sur le côté droit de la figure, qui montre la carte des couleurs pour les différentes valeurs de y.

Inversion des couleurs dans Matplotlib Python avec _r

Nous pouvons inverser une carte de couleurs en ajoutant _r à la fin du nom de la carte de couleurs dans Matplotlib. Par exemple, cmap='viridis_r' inversera simplement la carte de couleurs 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()

Production :

Inverser les couleurs dans Matplotlib Python en ajoutant _r à la fin

Il crée un nuage de points dont les valeurs y sont mises en correspondance avec la carte de couleur inversée viridis. Ainsi, les points ayant des valeurs plus élevées dans la figure obtiennent la couleur bleu foncé, et les points ayant des valeurs plus faibles obtiennent la couleur jaune.

Nous pouvons également voir que la barre de couleur à droite a inversé la couleur dans cet exemple.

Inverser les couleurs dans Matplotlib Python avec matplotlib.colors.Colormap.reversed()

Une autre façon d’inverser la carte de couleurs en Python est d’utiliser la méthode matplotlib.colors.Colormap.reversed() pour créer la carte de couleurs inversée.

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

Production :

Colormaps inversés en Python Matplotlib en utilisant la méthode inversée

Il crée également un nuage de points dont les valeurs y sont mises en correspondance avec la carte de couleur inversée de viridis. La méthode reversed() inverse l’objet colormap auquel la méthode est appliquée.

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

Production :

Inverser les couleurs dans Matplotlib Python en inversant la liste des couleurs

Il crée également un nuage de points dont les valeurs y sont mises en correspondance avec la carte de couleur inversée de viridis. Toute carte de couleurs n’est qu’une liste de couleurs. Nous pouvons accéder à la liste des couleurs d’une carte de couleurs cmap en utilisant cmap.colors. Nous inversons ensuite la liste et finalement nous reconvertissons la liste inversée en une carte de couleurs en utilisant la fonction ListedColormap() du paquet matplotlib.colors.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn