Quelle couleur utilisez-vous pour dessiner des graphiques avec matplotlib? matplotlib a une belle palette de couleurs par défaut, Je souhaite utiliser différentes variations de couleurs pour les présentations, les matériaux et les graphiques Avez-vous déjà voulu unifier l'image couleur?
Dans cet article, l'image couleur de la marque à la palette de couleurs matplotlib Je vais contester l'adaptation!
matplotlib a deux types de classes pour créer votre propre palette de couleurs.
Créez en définissant le code de couleur qui compose la palette de couleurs avec une liste ou un tableau. Les couleurs constitutives de la palette de couleurs créée changent discrètement.
[Exemple d'utilisation]
import matplotlib as mpl
color_list = ['red', 'green', 'blue']
cmap = mpl.colors.ListedColormap(color_list)
[Carte de couleurs créée]
Créez en définissant les informations RVB qui composent la palette de couleurs dans le format de données spécifié. Les couleurs constitutives de la palette de couleurs créée changent en permanence.
[Exemple d'utilisation]
import matplotlib as mpl
#########################################################################
#
#[Réglage des couleurs constituantes]
#
#Les données des couleurs constituantes sont,
# [
# (x_0, y_0, z_0)
# ...
# (x_i, y_i, z_i)
# ]
#La valeur RVB est définie de 0 à 1 dans la structure de.
#Les couleurs constitutives de la palette de couleurs sont z_0 -> y_1, z_1 -> y_2, ...Il change continuellement dans l'ordre de.
#Rouge avec les paramètres suivants-> green, green ->Cela signifie un changement de bleu.
#
#########################################################################
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)
Avec l'implémentation ci-dessus, la définition des couleurs constituantes n'est pas intuitive et un peu difficile, mais Utilisation de matplotlib.colors.LinearSegmentedColormap.from_list Il peut être créé avec une liste de codes couleur.
#Lors de la création avec liste
import matplotlib as mpl
color_list = ['red', 'green', 'blue']
cmap = mpl.colors.LinearSegmentedColormap.from_list('colormap_name', color_list)
[Carte de couleurs créée]
Lorsque vous créez votre propre palette de couleurs, utilisez la palette de couleurs créée avec matplotlib.cm.register_cmap. Il est pratique de s'inscrire.
import matplotlib.pyplot as plt
import matplotlib as mpl
def set_custom_colormap(name: str, color_list: list):
"""
color_Convertissez la liste en palette de couleurs et enregistrez-la dans matplotlib avec le nom.
Deux modèles de type discret et de type continu et quatre modèles de palette de couleurs sont enregistrés dans l'ordre inverse.
"""
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
Tout ce que vous avez à faire est de vérifier le code couleur de la couleur que vous souhaitez définir.
SENSY colormap
COLORMAP_SOURCE_DICT = {
#Gradation monochromatique
'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'],
#Gradation multicolore
'sensy': ['#FF6B9A', '#4E6FF0'],
'sensy_diverge': ['#FF6B9A', '#FFFFFF', '#4E6FF0'],
'sensy_accent': ['#5073ED', '#FA8EB5', '#A7C0FD', '#2B2C4B', '#F4458C', '#4B4C80'],
}
#création de palette de couleurs&enregistrement
for name, color_list in COLORMAP_SOURCE_DICT.items():
set_custom_colormap(name, color_list)
#Réglage initial###################
#Couleur initiale
DEFAULT_COLORMAP = 'sensy_accent_dis'
#Lors de l'utilisation de matplotlib
mpl.rcParams['image.cmap'] = DEFAULT_COLORMAP
#Lors de l'utilisation de seaborn
import seaborn as sns
sns.set()
sns.set_palette(DEFAULT_COLORMAP)
[Image de la carte couleur]
[Image d'adaptation]
Type de graphique | image |
---|---|
graphique à barres | |
Nuage de points | |
contour | |
Carte de chaleur |
Si je connaissais le code couleur que je voulais utiliser, je pourrais facilement créer ma propre palette de couleurs. Si vous pensez que les variations de couleur des graphiques que vous utilisez normalement ne sont pas satisfaisantes ou incohérentes, Il peut être amusant de créer vous-même une belle palette de couleurs.
Recommended Posts