2016-07-07 42 views
8

Seaborn ha un'opzione per creare delle tavolozze di colori di qualità. Desidero utilizzare queste tavolozze per generare colori che funzionano bene insieme in una mappa in cui i paesi sono ombreggiati secondo alcune proprietà. Il codice seguente produce 8 tonalità di viola dalla luce all'oscurità. Nota anche la possibilità di specificare il numero di colori richiesto, quindi non posso usare solo una tavolozza fissa di colori definiti.Estrarre il codice RGB o a 6 cifre dalla tavolozza Seaborn

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

Se corro lo stesso, ma in una lista in questo modo:

color_list = sns.cubehelix_palette(num_shades) 

si ottiene:

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

Queste non sono chiaramente i valori RGB che è quello che mi serve.

1) In che formato sono questi colori? 2) Come posso convertire in codici RGB o 6 cifre?

Ho provato a cercare per un po 'di tempo e non ho trovato risposte. Ho guardato qui e in altra documentazione Seaborn:

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

posso convertire a 6 codici cifre da RGB utilizzando:

Converting a RGB color tuple to a six digit code, in Python

ma sono bloccato da come farlo direttamente o ottenendo i valori RGB. Qualsiasi aiuto sarebbe apprezzato.

risposta

4

I valori ottenuti sono percentuali di 255, il valore massimo RGB. Basta moltiplicare ogni terzina di valori per 255 (e arrotondare, se lo desideri) per ottenere i valori RGB.

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

Quindi memorizzare quelli in un nuovo elenco per avere l'elenco di valori RGB.

+1

Come ho fatto a perdere che! Grazie molto. – Pete

14

Se per "6 cifre del codice" si intende un codice esadecimale, si può anche fare:

pal = sns.color_palette(...) 
pal.as_hex() 
+0

Funziona! Restituisce un elenco di stringhe con # aggiunto. Vedi: 'importazione seaborn; pal_hls = seaborn.hls_palette (12, l = .3, s = .8) .as_hex(); stampa (pal_hls); ' – Iacchus