在 python 中,如何根据 -1 和 1 之间的输入值获得不同深浅的红色/黄色?如果该值介于 -1 和 0 之间,则该函数应返回黄色。 如果该值介于 0 和 1 之间,则该函数应返回各种级别或红色阴影。更具体地说,如果值为 0,那么返回的颜色应该是标准的红色#FF0000,但是如果它是 1,那么返回的值应该是淡红色。
我下面的代码显示的颜色并不总是红色(或看起来不是红色)。
import colorsys
import matplotlib.colors as mc
def get_red_shade(value):
if value < -1 or value > 1:
raise ValueError("Input value must be between -1 and 1")
if value <= 0:
# For values between -1 and 0, return yellow
return '#ffff00'
# Convert the input value to a hue value between 0 and 1
hue = (1 - value) / 2
# Convert the hue value to an RGB value
r, g, b = colorsys.hsv_to_rgb(hue, 1, 1)
# Convert the RGB value to a hex code
return mc.to_hex((r, g, b))
如果函数返回颜色的十六进制代码,我将不胜感激。谢谢!
使用 colorir 你可以在 0 和 1 之间插入一个渐变
>>> grad = Grad(["ff0000", "fff0f0"])
>>> grad.perc(0)
"#ff0000"
>>> grad.perc(1)
"#fff0f0"
运行
swatch(grad)
将在终端打印它: