Erstellen Sie eine benutzerdefinierte Farbkarte und Farbskala in Matplotlib
Problem:
Entwerfen Sie eine benutzerdefinierte Farbkarte, die sanft von Rot über Violett zu Blau übergeht und Werte zwischen -2 und 2 abbildet. Verwenden Sie die Farbkarte, um Punkte in einem Diagramm einzufärben und die zugehörige Farbskala anzuzeigen.
Implementierung:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
# Generate random data
x, y, c = zip(*np.random.rand(30, 3) * 4 - 2)
# Create a custom colormap
colors = ["red", "violet", "blue"]
norm = plt.Normalize(-2, 2)
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", colors)
# Plot using custom colormap
plt.scatter(x, y, c=c, cmap=cmap, norm=norm)
# Add color scale
plt.colorbar()
plt.show()
Nach dem Login kopieren
Erläuterung:
-
LinearSegmentedColormap: Anstelle einer ListedColormap, die diskrete Farben erzeugt, haben wir Verwenden Sie eine LinearSegmentedColormap, um einen kontinuierlichen Farbverlauf zu erstellen.
-
Normalisierung: Die Funktion Normalisieren ordnet die Datenwerte einem Bereich zwischen 0 und 1 zu. Sicherstellen, dass die Farben ordnungsgemäß verteilt sind.
-
RGBA-Spezifikation: Die Farben werden als Zeichenfolgen der gewünschten Farbnamen angegeben.
-
Streudiagramm: Die Datenpunkte werden mithilfe der benutzerdefinierten Farbkarte dargestellt und jedem Punkt wird eine Farbe basierend auf seinem entsprechenden Datenwert zugewiesen.
-
Farbskala: Die Farbleiste zeigt die Farbe an Farbverlauf und die zugeordneten Werte, sodass der Benutzer die Farb-Wert-Beziehung visualisieren kann.
Zusätzliche Überlegungen:
-
Mehrere Werte: Um eine Farbkarte zu erstellen, die mehr als drei Werte Farben zuordnet, geben Sie zusätzliche Tupel normalisierter Werte und Farben in der Methode from_list an.
-
Farbleisten-Ticks: Passen Sie die Ticks der Farbleiste mit der Methode set_ticks an, um die angezeigten Werte anzupassen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine benutzerdefinierte Farbkarte und Farbskala in Matplotlib?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!