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



我有一个数字列表,并希望从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列表是困难的?我用了"蟒蛇的感觉"。来做上面的测试,并实际期望一个均匀间隔的RGB元组列表。

有人能告诉我如何在python中使用颜色映射,以及如何以最短的方式从颜色映射简单地将n排序的整数分配给n颜色?

编辑:我在这里假设,colormap是一个离散的颜色列表。我只需要第一个项,最后一个项以及颜色列表中1/n处的每个项

Edit2:根据Mark下面的评论,我试图在get_cmap之后使用.colors属性来访问地图的颜色列表。但是,当颜色映射为viridis时,它不起作用,当我将其设置为YlOrBr时,我得到错误:'LinearSegmentedColormap' object has no attribute 'colors'

您要求它生成包含8个条目的颜色映射。当你要求得到10个结果时,得到的结果是重复的,这并不奇怪。

我能听到你的尖叫&;arrggigh &;从这里。

最新更新