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

新手上路,请多包涵

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 位代码:

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

但我不知道如何直接或通过获取 RGB 值来做。任何帮助,将不胜感激。

原文由 Pete 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 867
2 个回答

您得到的值是 255(最大 RGB 值)的百分比。只需将每个三元组值乘以 255(并根据需要进行四舍五入)即可获得 RGB 值。

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

然后将它们存储在一个新列表中以获得您的 RGB 值列表。

原文由 perfect5th 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果“6 位代码”是指十六进制代码,您还可以执行以下操作:

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

原文由 mwaskom 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题