Python:将浮动范围[0.0,1.0]映射到颜色范围[红色,绿色]?

时间:2011-07-12 07:34:54

标签: python colors range

我有一个函数在区间[0.0,1.0]中返回float结果。我想使用从红色为0.0到绿色为1.0(可能通过黄色为0.5)的颜色可视化结果。我怎么能这样做?谢谢!

2 个答案:

答案 0 :(得分:3)

我认为最简单的方法是使用HSL/HSB(色调饱和度亮度),其中色调值为最大值的0-33%将映射到红色 - 橙色 - 黄色 - 绿色范围。工作的优点是HSL(相对于RGB)是得到的颜色范围会更好看(例如RGB中的亮黄色包含一撮蓝色)。

所以基本上你会根据常数S和L值以及与

对应的H创建一个值
your_value * (1/3 of the maximum H value, often 255)

然后将该值转换回RGB以进行显示。不知道Python(对我很羞耻),但显然colorsys module可以为你做这个转换。

答案 1 :(得分:2)

假设你有办法在0..1的范围内呈现表示为3元组(R,G,B)的RGB值,听起来你想要从:(1,0,0)到:(0,1,0)。

您可以使用:rgbs = [(1-i,i,0) for i in your_floats]

然后使用任何图形库将这些3元组可视化为实际的RGB颜色。