从Seaborn调色板中提取RGB或6位数代码

Pet*_*ete 14 python rgb seaborn

Seaborn可以选择创建漂亮的调色板.我希望使用这些调色板生成颜色,这些颜色可以在地图中很好地协同工作,其中根据某些属性对国家进行着色.以下代码从浅到深产生8种紫色阴影.另请注意,指定颜色数量的能力是必需的,因此我不能只使用定义颜色的固定调色板.

import seaborn as sns
num_shades = 8
sns.palplot(sns.cubehelix_palette(num_shades))
Run Code Online (Sandbox Code Playgroud)

如果我运行相同但在这样的列表中:

color_list = sns.cubehelix_palette(num_shades)
Run Code Online (Sandbox Code Playgroud)

你得到:

[[0.9312692223325372, 0.8201921796082118, 0.7971480974663592], ... 
Run Code Online (Sandbox Code Playgroud)

这些显然不是RGB值,这是我需要的.

1)这些颜色是什么格式?2)如何转换为RGB或6位数代码?

我试过很长一段时间没找到答案.我看过这里和其他seaborn文档:

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

我可以使用以下方法从RGB转换为6位数代码:

在Python中将RGB颜色元组转换为六位数代码

但我被困在如何直接或通过获取RGB值.任何帮助,将不胜感激.

mwa*_*kom 33

如果"6位数代码"表示十六进制代码,您还可以执行以下操作:

pal = sns.color_palette(...)
pal.as_hex()
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。当前接受的答案有效,但它手动重新发明轮子而不是使用现有的内置函数 (4认同)

per*_*5th 5

您获得的值是255的百分比,即最大RGB值.只需将每个三元组值乘以255(如果您愿意,可以舍入为圆形)以获取RGB值.

for color in color_list:
    for value in color:
        value *= 255
Run Code Online (Sandbox Code Playgroud)

然后将它们存储在新列表中以获得RGB值列表.