2016-07-07 60 views
8

Seaborn hat eine Option, um schöne Farbpaletten zu erstellen. Ich möchte diese Paletten verwenden, um Farben zu erzeugen, die in einer Karte gut zusammenarbeiten, in der die Länder entsprechend einer Eigenschaft schattiert sind. Der folgende Code erzeugt 8 Schattierungen von Violett von hell bis dunkel. Beachten Sie auch, dass die Anzahl der Farben angegeben werden muss, damit ich nicht einfach eine festgelegte Palette definierter Farben verwenden kann.RGB oder 6-stelligen Code aus der Seaborn-Palette extrahieren

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

Wenn ich das gleiche, aber in einer Liste laufen wie folgt:

color_list = sns.cubehelix_palette(num_shades) 

Sie erhalten:

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

Diese eindeutig nicht RGB-Werte sind das, was ich brauche.

1) In welchem ​​Format sind diese Farben? 2) Wie kann ich RGB- oder 6-stellige Codes konvertieren?

Ich habe versucht, seit einiger Zeit zu suchen und fand keine Antworten. Ich habe hier und in anderen Seaborn Dokumentation sah:

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

bis 6-stellige Codes von RGB umwandeln kann mit:

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

bin aber fest, wie es zu tun direkt oder über die RGB-Werte erhalten. Jede Hilfe wäre willkommen.

Antwort

4

Die Werte, die Sie erhalten, sind Prozentsätze von 255, der maximale RGB-Wert. Multiplizieren Sie einfach jedes Tripel von Werten mit 255 (und runden Sie, wenn Sie möchten), um die RGB-Werte zu erhalten.

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

Dann speichern Sie diese in einer neuen Liste, um Ihre Liste der RGB-Werte zu haben.

+1

Wie habe ich das verpassen! Danke vielmals. – Pete

14

Wenn von "6-stelligen Code" Sie einen Hex-Code bedeuten, können Sie auch tun:

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

Funktioniert! Es gibt eine Liste von Zeichenfolgen mit dem hinzugefügten # zurück. Siehe: 'seaborn importieren; pal_hls = seaborn.hls_palette (12, l = 0,3, s = 0,8) .as_hex(); drucken (pal_hls); ' – Iacchus