我有一个数字列表,并希望从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 &;从这里。