web-dev-qa-db-fra.com

Extraire le code RVB ou 6 chiffres de la palette Seaborn

Seaborn a une option pour créer de belles palettes de couleurs. Je souhaite utiliser ces palettes pour générer des couleurs qui fonctionnent bien ensemble dans une carte où les pays sont ombrés selon une propriété. Le code suivant produit 8 nuances de violet du clair au foncé. Notez également que la possibilité de spécifier le nombre de couleurs est requise, donc je ne peux pas simplement utiliser une palette fixe de couleurs définies.

import seaborn as sns
num_shades = 8
sns.palplot(sns.cubehelix_palette(num_shades))

Si je lance la même chose mais dans une liste comme ça:

color_list = sns.cubehelix_palette(num_shades)

vous obtenez:

[[0.9312692223325372, 0.8201921796082118, 0.7971480974663592], ... 

Ce ne sont clairement pas des valeurs RVB, c'est ce dont j'ai besoin.

1) Dans quel format sont ces couleurs? 2) Comment convertir en codes RVB ou 6 chiffres?

J'ai essayé de chercher pendant un certain temps et je n'ai trouvé aucune réponse. J'ai regardé ici et d'autres documents marins:

https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.set_color_codes.html

Je peux convertir des codes à 6 chiffres de RVB en utilisant:

Conversion d'un Tuple de couleur RVB en un code à six chiffres, en Python

mais je suis coincé sur la façon de le faire directement ou via l'obtention des valeurs RVB. Toute aide serait appréciée.

18
Pete

Les valeurs que vous obtenez sont des pourcentages de 255, la valeur RVB max. Multipliez simplement chaque triplet de valeurs par 255 (et arrondissez, si vous le souhaitez) pour obtenir les valeurs RVB.

for color in color_list:
    for value in color:
        value *= 255

Ensuite, stockez-les dans une nouvelle liste pour avoir votre liste de valeurs RVB.

4
perfect5th

Si par "code à 6 chiffres" vous entendez un code hexadécimal, vous pouvez également faire:

pal = sns.color_palette(...)
pal.as_hex()
41
mwaskom