Welche Farbe verwenden Sie beim Zeichnen von Grafiken mit matplotlib? matplotlib wird standardmäßig mit einer schönen Farbkarte geliefert. Ich möchte verschiedene Farbvarianten für Präsentationen, Materialien und Grafiken verwenden Wollten Sie schon immer das Farbbild vereinheitlichen?
In diesem Artikel wird das Markenfarbbild auf die Matplotlib-Farbkarte übertragen Ich werde die Anpassung herausfordern!
matplotlib verfügt über zwei Arten von Klassen zum Erstellen Ihrer eigenen Farbkarte.
Erstellen Sie, indem Sie den Farbcode festlegen, aus dem die Farbkarte mit Liste oder Array besteht. Die Grundfarben der erstellten Farbkarte ändern sich diskret.
[Anwendungsbeispiel]
import matplotlib as mpl
color_list = ['red', 'green', 'blue']
cmap = mpl.colors.ListedColormap(color_list)
[Farbkarte erstellt]
Erstellen Sie, indem Sie die RGB-Informationen, aus denen die Farbkarte besteht, im angegebenen Datenformat festlegen. Die Grundfarben der erstellten Farbkarte ändern sich kontinuierlich.
[Anwendungsbeispiel]
import matplotlib as mpl
#########################################################################
#
#[Einstellung der Grundfarben]
#
#Die Daten der konstituierenden Farben sind,
# [
# (x_0, y_0, z_0)
# ...
# (x_i, y_i, z_i)
# ]
#Der RGB-Wert wird in der Struktur von von 0 auf 1 gesetzt.
#Die Grundfarben der Farbkarte sind z_0 -> y_1, z_1 -> y_2, ...Es ändert sich kontinuierlich in der Reihenfolge von.
#Rot mit den folgenden Einstellungen-> green, green ->Es bedeutet einen Blauwechsel.
#
#########################################################################
segment_data = {
'red':
[
(0.0, 0/255, 255/255),
(0.5, 0/255, 0/255),
(1.0, 0/255, 0/255),
],
'green':
[
(0.0, 0/255, 0/255),
(0.5, 128/255, 128/255),
(1.0, 0/255, 0/255),
],
'blue':
[
(0.0, 0/255, 0/255),
(0.5, 0/255, 0/255),
(1.0, 255/255, 0/255),
],
}
cmap = mpl.colors.LinearSegmentedColormap('colormap_name', segment_data)
Mit der obigen Implementierung ist das Einstellen der konstituierenden Farben nicht intuitiv und ein wenig schwierig, aber Verwenden von matplotlib.colors.LinearSegmentedColormap.from_list Es kann mit einer Liste von Farbcodes erstellt werden.
#Beim Erstellen mit Liste
import matplotlib as mpl
color_list = ['red', 'green', 'blue']
cmap = mpl.colors.LinearSegmentedColormap.from_list('colormap_name', color_list)
[Farbkarte erstellt]
Verwenden Sie beim Erstellen Ihrer eigenen Farbkarte die mit matplotlib.cm.register_cmap erstellte Farbkarte. Es ist bequem, sich zu registrieren.
import matplotlib.pyplot as plt
import matplotlib as mpl
def set_custom_colormap(name: str, color_list: list):
"""
color_Konvertieren Sie die Liste in eine Farbkarte und registrieren Sie sie in matplotlib mit Namen.
Zwei Muster vom diskreten Typ und vom kontinuierlichen Typ sowie vier Muster von Farbkarten werden in umgekehrter Reihenfolge registriert.
"""
cmap_dis = mpl.colors.ListedColormap(color_list)
cmap_seq = mpl.colors.LinearSegmentedColormap.from_list(name, color_list)
plt.register_cmap(name + '_dis', cmap_dis)
plt.register_cmap(name + '_dis_r', cmap_dis.reversed())
plt.register_cmap(name + '_seq', cmap_seq)
plt.register_cmap(name + '_seq_r', cmap_seq.reversed())
return
Sie müssen lediglich den Farbcode der Farbe überprüfen, die Sie einstellen möchten.
SENSY colormap
COLORMAP_SOURCE_DICT = {
#Monochromatische Abstufung
'sensy_single_1': ['#FFFFFF', '#F4458C'],
'sensy_single_2': ['#FFFFFF', '#FF6B9A'],
'sensy_single_3': ['#FFFFFF', '#FA8EB5'],
'sensy_single_4': ['#FFFFFF', '#A7C0FD'],
'sensy_single_5': ['#FFFFFF', '#5073ED'],
'sensy_single_6': ['#FFFFFF', '#4E6FF0'],
'sensy_single_7': ['#FFFFFF', '#4B4C80'],
'sensy_single_8': ['#FFFFFF', '#2B2C4B'],
#Mehrfarbige Abstufung
'sensy': ['#FF6B9A', '#4E6FF0'],
'sensy_diverge': ['#FF6B9A', '#FFFFFF', '#4E6FF0'],
'sensy_accent': ['#5073ED', '#FA8EB5', '#A7C0FD', '#2B2C4B', '#F4458C', '#4B4C80'],
}
#Farbkartenerstellung&Anmeldung
for name, color_list in COLORMAP_SOURCE_DICT.items():
set_custom_colormap(name, color_list)
#Grundeinstellung###################
#Erste Farbkarte
DEFAULT_COLORMAP = 'sensy_accent_dis'
#Bei Verwendung von matplotlib
mpl.rcParams['image.cmap'] = DEFAULT_COLORMAP
#Bei Verwendung von Seaborn
import seaborn as sns
sns.set()
sns.set_palette(DEFAULT_COLORMAP)
[Farbkartenbild]
[Anpassungsbild]
Diagrammtyp | Bild |
---|---|
Balkendiagramm | |
Streudiagramm | |
Kontur | |
Wärmekarte |
Wenn ich den Farbcode kennen würde, den ich verwenden wollte, könnte ich leicht meine eigene Farbkarte erstellen. Wenn Sie der Meinung sind, dass die Farbabweichungen der normalerweise verwendeten Grafiken unbefriedigend oder inkonsistent sind, Es kann Spaß machen, selbst eine schöne Farbkarte zu erstellen.
Recommended Posts