我有一个数字列表,想从python中的ylorbr
颜色表中为每个数字分配一个颜色。如果我对颜色表的直觉是正确的,它只是一个颜色范围-所以,ylorbr
从黄色到橙子再到棕色。
我只想从这个色彩Map表中得到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并不陌生。有什么原因吗?为什么从给定的色彩Map表中获得一个简单的均匀间隔的RGB列表很难?我使用“python sense”做了上面的测试,实际上期望得到一个均匀间隔的RGB元组列表。
有人能告诉我python中的colormap是如何工作的吗?以及如何以最短的方式将n
排序的整数分配给colormap中的n
颜色?
编辑:这里我假设colormap是一个离散的颜色列表,我只需要第一个元素,最后一个元素和每个元素的颜色列表的1/n。
编辑2:根据Mark下面的评论,我尝试在get_cmap
之后使用.colors
属性访问Map的颜色列表。但是当颜色Map表为viridis
时,它可以工作,当我将其设置为YlOrBr
时,它不工作,我得到错误:'LinearSegmentedColormap' object has no attribute 'colors'
2条答案
按热度按时间f0ofjuux1#
你让它做一个有8个条目的色图,当你要求10个结果时,你得到重复的结果也就不足为奇了。
我在这都能听到你尖叫。
9njqaruj2#
色彩Map表有一个
resampled
函数,关于你想要什么(but在RGB空间插值可以给予你难看的颜色,让色彩鉴赏家哭泣)
字符串