Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建并将RGB颜色渐变从白色映射到红色,从0映射到1_Python_Colors - Fatal编程技术网

Python 创建并将RGB颜色渐变从白色映射到红色,从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)

我有一个介于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)
),以及颜色之间的所有其他值


我已经检查了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值。。。