Umgekehrte Colormap in Python Matplotlib erstellen

Suraj Joshi 15 Februar 2024
  1. Colormaps in Matplotlib Python
  2. Umkehren von Farbkarten in Matplotlib Python mit _r
  3. Umkehrung von Farbkarten in Matplotlib Python mit matplotlib.colors.Colormap.reversed()
Umgekehrte Colormap in Python Matplotlib erstellen

Die Colormap ist eine einfache Möglichkeit, Datenwerte auf Farben abzubilden. Das Umkehren der Colormap bedeutet, dass die Farbzuordnung der einzelnen Werte umgekehrt wird. Angenommen, wir haben eine Colormap, in der niedrigere Werte der Farbe “Gelb” und höhere Werte der Farbe “Rot” zugeordnet sind. Durch Umkehrung der Farbzuordnung werden nun die niedrigeren Werte der Farbe “Rot” und die höheren Werte der Farbe “Gelb” zugeordnet. In diesem Tutorial werden verschiedene Möglichkeiten zum Umkehren von Colormaps in Python Matplotlib erklärt.

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

Ausgabe:

Colormaps in Matplotlib Python

Es wird ein Scatterplot erzeugt, dessen y-Werte auf die Colormap viridis abgebildet werden. Das bedeutet, dass die Punkte mit niedrigeren y-Werten die dunkelblaue Farbe haben, die Punkte mit höheren y-Werten die gelbe Farbe, und die Zwischenpunkte haben die Farben blue und green.

Wir können auch einen Farbbalken auf der rechten Seite der Abbildung sehen, der die Farbzuordnung für die verschiedenen Werte von y anzeigt.

Umkehren von Farbkarten in Matplotlib Python mit _r

Wir können eine Colormap umkehren, indem wir _r am Ende des Namens der Colormap in Matplotlib hinzufügen. z. B. cmap='viridis_r' kehrt einfach die viridis Colormap um.

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

Ausgabe:

Umkehrung von Colormaps in Matplotlib Python durch Hinzufügen von _r am Ende

Es wird ein Scatterplot erzeugt, dessen y-Werte auf die invertierte viridis-Farbkarte abgebildet werden. Daher erhalten die Punkte mit höheren Werten in der Abbildung die dunkelblaue Farbe, und die Punkte mit niedrigeren Werten erhalten die gelbe Farbe.

Wir können auch sehen, dass der Farbbalken rechts in diesem Beispiel die Farbe umgekehrt hat.

Umkehrung von Farbkarten in Matplotlib Python mit matplotlib.colors.Colormap.reversed()

Eine weitere Möglichkeit, Colormaps in Python umzukehren, ist die Verwendung der Methode matplotlib.colors.Colormap.reversed(), um die umgekehrte Colormap zu erzeugen.

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

Ausgabe:

Umgekehrte Colormaps in Matplotlib Python mit der Methode reversed

Es wird auch ein Scatter-Plot erzeugt, dessen y-Werte auf die umgekehrte viridis-Farbkarte abgebildet werden. Die Methode reversed() kehrt das Colormap-Objekt um, auf das die Methode angewendet wird.

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

Ausgabe:

Umgekehrte Colormaps in Matplotlib Python durch Invertierung der Farbliste

Außerdem wird ein Scatter-Plot erzeugt, dessen y-Werte auf die umgekehrte viridis-Farbkarte abgebildet werden. Jede Colormap ist nur eine Liste von Farben. Wir können auf die Liste der Farben einer Farbkarte cmap mit cmap.colors zugreifen. Dann kehren wir die Liste um und konvertieren schließlich die umgekehrte Liste zurück in eine Farbkarte mit der Funktion ListedColormap() aus dem Paket matplotlib.colors.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn