从 Seaborn 调色板中提取 RGB 或 6 位代码
Extract RGB or 6 digit code from Seaborn palette
Seaborn 有一个选项可以创建漂亮的调色板。我希望使用这些调色板生成可以在地图中很好地协同工作的颜色,其中国家/地区根据某些 属性 进行着色。下面的代码产生 8 种深浅不一的紫色。另请注意,指定颜色数量的能力是必需的,因此我不能只使用已定义颜色的固定调色板。
import seaborn as sns
num_shades = 8
sns.palplot(sns.cubehelix_palette(num_shades))
如果我 运行 相同但在这样的列表中:
color_list = sns.cubehelix_palette(num_shades)
你得到:
[[0.9312692223325372, 0.8201921796082118, 0.7971480974663592], ...
这些显然不是我需要的 RGB 值。
1) 这些颜色的格式是什么?
2) 如何转换为 RGB 或 6 位代码?
我找了好久都没找到答案。我看过这里和其他 seaborn 文档:
https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.set_color_codes.html
我可以使用以下方法从 RGB 转换为 6 位代码:
Converting a RGB color tuple to a six digit code, in Python
但我不知道如何直接或通过获取 RGB 值进行操作。任何帮助将不胜感激。
您得到的值是最大 RGB 值 255 的百分比。
只需将每个三元组值乘以 255(并根据需要四舍五入)即可获得 RGB 值。
for color in color_list:
for value in color:
value *= 255
然后将它们存储在一个新列表中以获得您的 RGB 值列表。
如果“6 位代码”是指十六进制代码,您还可以:
pal = sns.color_palette(...)
pal.as_hex()
Seaborn 有一个选项可以创建漂亮的调色板。我希望使用这些调色板生成可以在地图中很好地协同工作的颜色,其中国家/地区根据某些 属性 进行着色。下面的代码产生 8 种深浅不一的紫色。另请注意,指定颜色数量的能力是必需的,因此我不能只使用已定义颜色的固定调色板。
import seaborn as sns
num_shades = 8
sns.palplot(sns.cubehelix_palette(num_shades))
如果我 运行 相同但在这样的列表中:
color_list = sns.cubehelix_palette(num_shades)
你得到:
[[0.9312692223325372, 0.8201921796082118, 0.7971480974663592], ...
这些显然不是我需要的 RGB 值。
1) 这些颜色的格式是什么? 2) 如何转换为 RGB 或 6 位代码?
我找了好久都没找到答案。我看过这里和其他 seaborn 文档:
https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.set_color_codes.html
我可以使用以下方法从 RGB 转换为 6 位代码:
Converting a RGB color tuple to a six digit code, in Python
但我不知道如何直接或通过获取 RGB 值进行操作。任何帮助将不胜感激。
您得到的值是最大 RGB 值 255 的百分比。 只需将每个三元组值乘以 255(并根据需要四舍五入)即可获得 RGB 值。
for color in color_list:
for value in color:
value *= 255
然后将它们存储在一个新列表中以获得您的 RGB 值列表。
如果“6 位代码”是指十六进制代码,您还可以:
pal = sns.color_palette(...)
pal.as_hex()