如何将 Python 中浮点数范围 [0.0, 1.0] 映射到颜色范围 [红色, 绿色]?

5
我有一个函数,可以返回介于[0.0, 1.0]之间的浮点数结果。我想使用颜色来可视化结果,从红色表示0.0到绿色表示1.0(也许通过黄色表示0.5)。我该如何做?谢谢!
2个回答

4
我认为最简单的方法是使用HSL/HSB(色相饱和度亮度)来进行工作,其中色相值在最大值的0-33%范围内将映射到红橙黄绿的范围。使用HSL(而不是RGB)的优点是生成的颜色范围看起来会更好看(例如,在RGB中,明亮的黄色包含一点蓝色)。
因此,基本上您将根据常量S和L值以及对应于H的值创建一个值。
your_value * (1/3 of the maximum H value, often 255)

然后将该值转换回RGB以进行显示。我不懂Python(羞愧),但显然colorsys模块可以为您执行此转换。


2
假设您有一种方法来呈现RGB值,表示为范围在0到1之间的3元组(R,G,B),那么您想要从(1, 0, 0)到(0, 1, 0)。您可以使用以下代码: rgbs = [(1-i,i,0) for i in your_floats] 然后使用任何图形库将这些3元组可视化为实际的RGB颜色。

我刚刚在画图软件的色轮上检查了一下,当你远离i=1或i=0时,它会产生非常混浊的值。为了获得漂亮而明亮的颜色,您需要留在圆圈的外部,因此RGB=(1,0,0),然后是(1,1,0),最后是(0,1,0)。 - Guimoute

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接