Python 创建并将RGB颜色渐变从白色映射到红色,从0映射到1
我有一个介于0和1之间的值列表(或Python 创建并将RGB颜色渐变从白色映射到红色,从0映射到1,python,colors,Python,Colors,我有一个介于0和1之间的值列表(或np.array),例如 _list = np.arange(0, 1, 0.05) print(_list) >>> [0. 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95] 如何将平滑的颜色渐变映射到此列表,其中0表示白色(rgb(255255255)),1表示红色(rgb(255,0,0)
np.array
),例如
_list = np.arange(0, 1, 0.05)
print(_list)
>>>
[0. 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65
0.7 0.75 0.8 0.85 0.9 0.95]
如何将平滑的颜色渐变映射到此列表,其中0表示白色(rgb(255255255)
),1表示红色(rgb(255,0,0)
),以及颜色之间的所有其他值
我已经检查了matplotlib.colors,但找不到任何相关内容。我发现他们会讨论类似的事情,但他们都与策划有关。我是遗漏了什么,还是真的没那么简单?假设您正在寻找类似rgb(255255)的字符串列表,您可以使用如下列表理解:
import numpy as np
values = np.arange(0, 1, 0.05)
print(values)
colors = [f"rgb(255, {round(v*255)}, {round(v*255)})" for v in values]
print(colors)
输出为:
[0. 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65
0.7 0.75 0.8 0.85 0.9 0.95]
['rgb(255, 0, 0)', 'rgb(255, 13, 13)', 'rgb(255, 26, 26)', 'rgb(255, 38, 38)', 'rgb(255, 51, 51)', 'rgb(255, 64, 64)', 'rgb(255, 77, 77)', 'rgb(255, 89, 89)', 'rgb(255, 102, 102)', 'rgb(255, 1
15, 115)', 'rgb(255, 128, 128)', 'rgb(255, 140, 140)', 'rgb(255, 153, 153)', 'rgb(255, 166, 166)', 'rgb(255, 179, 179)', 'rgb(255, 191, 191)', 'rgb(255, 204, 204)', 'rgb(255, 217, 217)', 'rgb(
255, 230, 230)', 'rgb(255, 242, 242)']
我会这样做:
import numpy as np
_list = np.arange(0, 1, 0.05)
rgbVals = list(map(lambda x: np.subtract([255,255,255], x*np.array([0,255,255])), _list))
此代码从
[255255255]
(白色)减去\u列表中的系数乘以[0255255]
,表示如果元素为1,则输出[255,0,0]
,如果元素为0,则输出[255255255]
。谢谢!我没有意识到我可以线性调整G&B值。。。