使用 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