使用 matplotlib 将 RGBA 元组转换为十六进制
Convert RGBA tuple to hex with matplotlib
使用 matplotlib 将 rgb 转换为 hex 很简单,但似乎忽略了 alpha 值。
比如两者的输出是一样的:
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.1))
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.8))
创建相同的十六进制代码 (#1a1a1a
),这不是我想要的。我不确定 我想要哪个 代码 - 但我知道如果 alpha 值较低,我希望能够使用“更轻”的十六进制代码。
通常我可能会使用 alpha 参数来控制 lightness/saturation(抱歉,我没有很好的语言来描述颜色)——所以我能够这样做很重要——但我需要能够通过将 RGBA 元组转换为十六进制来做到这一点。
您需要指定keep_alpha=True
:
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.1), keep_alpha=True)
# out: #1a1a1a1a
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.8), keep_alpha=True)
# out: #1a1a1acc
使用 matplotlib 将 rgb 转换为 hex 很简单,但似乎忽略了 alpha 值。
比如两者的输出是一样的:
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.1))
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.8))
创建相同的十六进制代码 (#1a1a1a
),这不是我想要的。我不确定 我想要哪个 代码 - 但我知道如果 alpha 值较低,我希望能够使用“更轻”的十六进制代码。
通常我可能会使用 alpha 参数来控制 lightness/saturation(抱歉,我没有很好的语言来描述颜色)——所以我能够这样做很重要——但我需要能够通过将 RGBA 元组转换为十六进制来做到这一点。
您需要指定keep_alpha=True
:
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.1), keep_alpha=True)
# out: #1a1a1a1a
mpl.colors.rgb2hex((0.1, 0.1, 0.1, 0.8), keep_alpha=True)
# out: #1a1a1acc