matplotlib 如何在python中根据输入值得到不同深浅的红色?

xyhw6mcr  于 2023-03-03  发布在  Python
关注(0)|答案(1)|浏览(229)

在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))

如果函数返回颜色的十六进制代码,我将非常感激。谢谢!

wgeznvg7

wgeznvg71#

使用hue = (1 - value) / 2,看起来好像您正在生成整个范围的色调值,但这不是您想要的,因为色调决定颜色。我认为您希望限制范围,以便颜色逐渐从黄色变为正值的红色。您已经有了一个比例,因此您可以简单地乘以范围限制。例如,hue = (1 - value) / 2 * 0.3为我们提供:

相关问题