【发布时间】:2015-07-16 10:36:26
【问题描述】:
我正在使用 RGBA 颜色在对数刻度上绘制一堆数据作为 matplotlib 中的散点图(以防介质相关)。我希望能够做的是,一旦我绘制了所有内容,我想挑选出各个散点并将它们的色调更改为某种 RGB 颜色的色调,但保留旧的 alpha 值。我目前的做法是这样的:
oldHSV = rgb_to_hsv(oldRGBA[:3])
newHSV = rgb_to_hsv(newRGB)
oldHSV[0] = newHSV[0]
newRGBA = hsv_to_rgb(oldHSV).tolist() + [oldRGBA[3]]
即我取旧 RGBA 值的 RGB 部分,将其转换为 HSV,对新的预期 RGB 颜色执行相同操作,然后替换色调,将其转回 RGB 并添加旧的 alpha 值。
由于我这样做了数千次,这可能比我想在这里花费的时间要长得多。一种可能的解决方法是深入研究 RGB 和 HSV 之间的转换,并一次性弄清楚如何做到这一点,但我希望知道如何处理颜色(我真的不知道)的人已经想出了简单有效的方法方法。
如何在保留 A 的 alpha 值的同时将给定 RGBA 颜色 A 的色调更改为给定 RGB 颜色 B 的色调?使用不同的颜色模型(例如 HSL)会简化任务吗?如果可以,这会有所帮助吗?
【问题讨论】:
标签: matplotlib colors