Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich mit Matplotlib eine benutzerdefinierte Farbkarte und zeige eine Farbskala an?

Wie erstelle ich mit Matplotlib eine benutzerdefinierte Farbkarte und zeige eine Farbskala an?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 07:17:01241Durchsuche

How to Create a Custom Colormap with Matplotlib and Display a Color Scale?

Benutzerdefinierte Farbkarte mit Matplotlib und Farbskalendiagramm

Einführung

Benutzerdefinierte Farbkarten ermöglichen eine personalisierte Visualisierung von Daten. In diesem Artikel geht es um die Anfrage eines Benutzers bezüglich der Erstellung einer eigenen Farbkarte, die fließend von Rot über Violett zu Blau übergeht und auf Werte zwischen -2 und 2 abgebildet wird. Ziel ist es, Datenpunkte in einem Diagramm einzufärben und die zugehörige Farbskala anzuzeigen.

Farbkartenerstellung

Um eine kontinuierliche Farbskala zu erstellen, wird eine LinearSegmentedColormap anstelle der diskreten ListedColormap verwendet. Eine Liste von Farben kann an die from_list-Methode übergeben werden, um diese benutzerdefinierte Farbkarte zu generieren:

import matplotlib.pyplot as plt
import matplotlib.colors

colors = ["red", "violet", "blue"]
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)

Farben zu Werten zuordnen

Um Farben zu Datenwerten zuzuordnen, ist eine Normalisierungsfunktion erforderlich. Die Funktion „Normalisieren“ wandelt Werte in einen für die Farbkarte geeigneten Bereich um:

norm = plt.Normalize(-2, 2)

Plotten mit benutzerdefinierter Farbkarte

So färben Sie Punkte im Diagramm mithilfe der benutzerdefinierten Farbkarte ein:

plt.scatter(x, y, c=c, cmap=cmap, norm=norm)

Visualisierung der Farbskala

Zum Anzeigen der Farbskala neben dem Diagramm:

plt.colorbar()

Verallgemeinerung auf beliebige Daten

Die Methode kann verallgemeinert werden, um beliebige Wertemengen Farben zuzuordnen:

cvals = [-2., -1, 2]
colors = ["red", "violet", "blue"]

tuples = list(zip(map(norm, cvals), colors))
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", tuples)

Das obige ist der detaillierte Inhalt vonWie erstelle ich mit Matplotlib eine benutzerdefinierte Farbkarte und zeige eine Farbskala an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn