[PYTHON] Comment choisir une palette de couleurs Seaborn

Introduction

Ceci est une compilation de Choisir les palettes de couleurs du package de dessin python seaborn. Un fichier Jupyter est également disponible.

Préparation

python


%matplotlib inline
import seaborn as sns, numpy as np
from ipywidgets import interact, FloatSlider

Comment créer avec color_palette ()
(Construire des palettes de couleurs avec color_palette ())

--color_palette peut être utilisé pour créer la plupart des palettes de couleurs.

  • Vous pouvez utiliser set_palette pour définir la palette de couleurs par défaut (voir ci-dessous pour un exemple).

Palettes de couleurs qualitatives

--Si vous ne spécifiez pas le nom de la palette de couleurs, vous pouvez obtenir la palette de couleurs actuelle. (Ce qui suit est la palette de couleurs par défaut) --palplot affiche la palette de couleurs.

python


current_palette = sns.color_palette(n_colors=24)
sns.palplot(current_palette)

image

La palette de couleurs par défaut comporte 6 thèmes (profond, muet, pastel, clair, sombre, daltonien). (La valeur par défaut est profonde) Dans Jupyter, vous pouvez vérifier le thème de manière interactive.

python


def show_pal0(palette):
    sns.palplot(sns.color_palette(palette, 24))
interact(show_pal0, palette='deep muted pastel bright dark colorblind'.split());

image

palette de couleurs de teinte
(Utilisation de systèmes de couleurs circulaires)

Le plus couramment utilisé est hls. Vous pouvez le créer avec color_palette ou hls_palette.

python


sns.palplot(sns.color_palette("hls",24))
sns.palplot(sns.hls_palette(24))

image image

Vous pouvez spécifier la luminosité avec le paramètre l et la saturation avec s.

python


sns.palplot(sns.hls_palette(24, l=0.2))
sns.palplot(sns.hls_palette(24, s=0.2))

image image

Une palette de couleurs claire peut être obtenue en procédant comme suit.

python


sns.palplot(sns.hls_palette(24, l=0.5, s=1))

image

Dans Jupyter, vous pouvez vérifier la luminosité et la saturation de manière interactive.

python


def show_pal1(l, s):
    sns.palplot(sns.hls_palette(24, l=l, s=s))
interact(show_pal1, l=FloatSlider(0.6, max=1), s=FloatSlider(0.65, max=1));

image

Vous pouvez également utiliser husl, qui réduit la variation de luminosité entre les teintes de hls.

python


sns.palplot(sns.husl_palette(24))

image

Couleur de la catégorie
(Utilisation des palettes catégorielles Color Brewer)

Une palette de couleurs avec un nom. C'est un peu vieux, mais j'ai préparé une liste (PDF pour impression). image

Référence: https://matplotlib.org/examples/color/colormaps_reference.html

python


sns.palplot(sns.color_palette("Set1", 24))

image

C'est facile à voir dans Jupyter.

python


sns.choose_colorbrewer_palette('qualitative');

image

Vous pouvez également spécifier en RVB pour créer une palette de couleurs.

python


flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
sns.palplot(sns.color_palette(flatui, 24))

image

Palettes de couleurs continues
(Palettes de couleurs séquentielles)

  • Spécifiez un nom spécifique pour une palette de couleurs continue. --Si vous ajoutez "_d" au nom, il sera sombre. (Léger si non attaché) --Si vous ajoutez "_r" au nom, l'ordre sera inversé.

python


sns.palplot(sns.color_palette("Blues", 24))
sns.palplot(sns.color_palette("Blues_d", 24))
sns.palplot(sns.color_palette("Blues_r", 24))

image image image

C'est facile à voir dans Jupyter.

python


sns.choose_colorbrewer_palette('sequential');

image

Palettes de couleurs continues avec cubehelix_palette
(Palettes séquentielles avec cubehelix_palette ())

Vous pouvez utiliser cubehelix pour créer une palette de couleurs avec une luminosité en constante évolution tout en changeant les tons de couleur.

python


sns.palplot(sns.color_palette("cubehelix", 24))

image

cubehelix_palette semble être une palette de couleurs différente.

python


sns.palplot(sns.cubehelix_palette(24))

image

En définissant as_cmap = True, il peut être utilisé dans le dessin graphique avec le paramètre cmap.

python


np.random.seed(1)
x, y = np.random.multivariate_normal([0, 0], [[1, -.5], [-.5, 1]], size=300).T
cmap = sns.cubehelix_palette(light=1, as_cmap=True)
sns.kdeplot(x, y, cmap=cmap, shade=True);

image

Dans Jupyter, la palette de couleurs cubehelix_palette peut être vérifiée de manière interactive.

python


def show_pal2(start, rot):
    sns.palplot(sns.cubehelix_palette(24, start=start, rot=rot))
interact(show_pal2, start=FloatSlider(max=1), rot=FloatSlider(0.4, max=1));

image

Palettes séquentielles personnalisées avec light_palette () et dark_palette ())

Vous pouvez également utiliser light_palette et dark_palette.

python


sns.palplot(sns.light_palette("blue", 24))
sns.palplot(sns.dark_palette("blue", 24))

image image

Utilisons-le pour la ligne de contour de la figure précédente.

python


cmap = sns.dark_palette("palegreen", as_cmap=True)
sns.kdeplot(x, y, cmap=cmap);

image

Dans Jupyter, vous pouvez le vérifier de manière interactive.

python


def show_pal3(light_or_dark, color, reverse):
    sns.palplot(eval('sns.%s_palette'%light_or_dark)(color=color, n_colors=24, reverse=reverse))
interact(show_pal3, light_or_dark=('light', 'dark'), color=('blue', 'navy', 'green', 'palegreen', 'red'), reverse=False);

image

Palettes de couleurs divisées en deux couleurs
(Palettes de couleurs divergentes)

Une palette de couleurs avec des couleurs différentes aux deux extrémités et du blanc au milieu. Vous pouvez le créer en le spécifiant avec color_palette.

python


sns.palplot(sns.color_palette("BrBG", 24))
sns.palplot(sns.color_palette("RdBu_r", 24))
sns.palplot(sns.color_palette("coolwarm", 24))

image image image

C'est facile à voir dans Jupyter.

python


sns.choose_colorbrewer_palette('diverging');

image

Palettes de couleurs personnalisées divisées en deux couleurs
(Palettes divergentes personnalisées avec diverging_palette ())

Vous pouvez le personnaliser avec diverging_palette. Vous pouvez également assombrir le milieu.

python


sns.palplot(sns.diverging_palette(220, 20, n=24))
sns.palplot(sns.diverging_palette(145, 280, s=85, l=25, n=24))
sns.palplot(sns.diverging_palette(255, 133, l=60, n=24, center="dark"))

image image image

Dans Jupyter, vous pouvez le vérifier de manière interactive.

python


def show_pal4(h_neg, h_pos, s, l, center):
    sns.palplot(sns.diverging_palette(h_neg, h_pos, n=24, s=s, l=l, center=center))
interact(show_pal4, h_neg=FloatSlider(220, max=360), h_pos=FloatSlider(20, max=360), 
         s=FloatSlider(75, max=99), l=FloatSlider(50, max=99), center=('light', 'dark'));

image

Définition des palettes par défaut
(Modification des palettes par défaut avec set_palette ())

Vous pouvez définir la palette de couleurs par défaut avec set_palette. Dessine sans réglages.

python


def sinplot(flip=1):
    x = np.linspace(0, 14, 100)
    for i in range(1, 7):
        plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)

sinplot()

image

Définissez et dessinez.

python


sns.set_palette("husl")
sinplot()

image

Vous pouvez le modifier localement à l'aide de la clause with.

python


with sns.color_palette("PuBuGn_d"):
    sinplot()

image

c'est tout

Recommended Posts