python - 从颜色图中获取 "n"数字的 "n"等间距 RGB 颜色

标签 python python-3.x numpy matplotlib

我有数字列表,并且想从 python 中的 ylorbr 颜色图中为每个数字分配一种颜色。 如果我对颜色图的直觉是正确的,它只是一系列颜色 - 因此,ylorbr 从黄色到橙色再到棕色。

我只想从此颜色图中获取 n 个等距颜色元组,从 0 开始(在本例中为黄色)。

这是我尝试过的简单代码:

from matplotlib import cm
import numpy as np
ylorbr = cm.get_cmap('YlOrBr', 8)
x = ylorbr(np.arange(0,1,0.1))

print(x)

当我尝试此操作时,x 不是一组均匀间隔的颜色 - 事实上,颜色是重复的。我也找不到其他解决方案 - 或者可能有,但我是绘图新手。

我是绘图新手,但对 python 并不陌生。为什么从给定的颜色图中获取均匀分布的 RGB 简单列表很困难,有什么原因吗?我使用“python sense”进行上述测试,实际上期望的是均匀间隔的 RGB 元组列表。

有人可以告诉我色彩映射表在 python 中是如何工作的,以及如何以尽可能最短的方式简单地将 n 个排序整数分配给色彩映射表中的 n 个颜色吗?

编辑:我在这里假设颜色图是离散的颜色列表。我只想要第一个项目、最后一个项目以及位于该颜色列表的 1/n 处的每个项目。

Edit2:根据下面 Mark 的评论,我尝试在 get_cmap 之后使用 .colors 属性访问 map 的颜色列表。但是,虽然它在颜色映射为 viridis 时有效,但当我将其设置为 YlOrBr 时它不起作用,并且出现错误:'LinearSegmentedColormap' 对象没有属性'颜色'

最佳答案

您要求它制作一个包含 8 个条目的色彩图。当您请求 10 个结果时,得到重复结果并不奇怪。

我能听到你从这里尖叫“arrgggh”。

关于python - 从颜色图中获取 "n"数字的 "n"等间距 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66556156/

相关文章:

python - 将 unicode 对象转换为带有实体的拉丁字符串

python - 使用 Virtualenv 时无法导入包,但在 Virtualenv 之外工作正常

python - 如何将UDF函数的返回值保存到两列中?

python - 将字符串转换为字典列表 Python 3

python-3.x - 如何测试使用用户界面的功能

python - numpy 在几个大型数组上出现内存错误

python - 通过 SymPy 求多元函数的微分并在一点求值

python - 如何使用字典和 google protobuf 枚举的类型提示?

python - Pandas 系列 - 仅当指数月份位于 [1,2,3] 时才保留值(value)

python - 如何从两个 Pandas 数据帧逐行计算 T 检验