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.
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)
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)
So färben Sie Punkte im Diagramm mithilfe der benutzerdefinierten Farbkarte ein:
plt.scatter(x, y, c=c, cmap=cmap, norm=norm)
Zum Anzeigen der Farbskala neben dem Diagramm:
plt.colorbar()
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!