gpt4 book ai didi

python - 计算一系列值的 RGB 值以创建热图

转载 作者:IT老高 更新时间:2023-10-28 20:30:50 32 4
gpt4 key购买 nike

我正在尝试使用 python 创建热图。为此,我必须为可能值范围内的每个值分配一个 RGB 值。我想将颜色从蓝色(最小值)通过绿色更改为红色(最大值)。

下面的图片示例说明了我是如何想到颜色组合的:我们有一个从 1(纯蓝色)到 3(纯红色)的范围,2 介于两者之间,类似于绿色。

color composition RGB in range(1-3)

我阅读了线性插值并编写了一个函数(或多或少)处理最小值和最大值之间范围内某个值的计算并返回一个 RGB 元组。它使用 ifelif 条件(这并不让我完全高兴):

def convert_to_rgb(minimum, maximum, value):
minimum, maximum = float(minimum), float(maximum)
halfmax = (minimum + maximum) / 2
if minimum <= value <= halfmax:
r = 0
g = int( 255./(halfmax - minimum) * (value - minimum))
b = int( 255. + -255./(halfmax - minimum) * (value - minimum))
return (r,g,b)
elif halfmax < value <= maximum:
r = int( 255./(maximum - halfmax) * (value - halfmax))
g = int( 255. + -255./(maximum - halfmax) * (value - halfmax))
b = 0
return (r,g,b)

但是我想知道是否可以使用 if 条件为每个颜色值编写一个函数不使用。有人有想法吗?非常感谢!

最佳答案

def rgb(minimum, maximum, value):
minimum, maximum = float(minimum), float(maximum)
ratio = 2 * (value-minimum) / (maximum - minimum)
b = int(max(0, 255*(1 - ratio)))
r = int(max(0, 255*(ratio - 1)))
g = 255 - b - r
return r, g, b

关于python - 计算一系列值的 RGB 值以创建热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792445/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com