Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-11-12 07:17:01
Original
320 Leute haben es durchsucht

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Visualisierung der Farbskala

Zum Anzeigen der Farbskala neben dem Diagramm:

plt.colorbar()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage