无论如何在matplotlib中使颜色更亮一些吗?
我有以下颜色图:
cmap = clr.LinearSegmentedColormap.from_list('red_yellow',
[(0,'#00001a'),
(0.59,'#e60000'),
(0.85,'#ff8000'),
(0.97,'#ffcc00'),
(1,'#ffff00')], N=600)
看起来像这样:
有没有办法让色彩图的最后一个括号中的黄色[由这一行给出:(1,'#ffff00')
]看起来比现在更明亮?
我并不是说我希望颜色更轻,更重要的是我希望它能够更加突出,有点像它被点亮了&#' 39;发光'热。我希望保持黄色的温暖,同时让它看起来非常明亮。
我希望它真正脱颖而出,几乎就像它闪耀着。在matplotlib中有没有办法做到这一点?
感谢。
答案 0 :(得分:1)
我能想到的最简单方法是将其转换为HSL,然后将其转换为亮度,然后将其转换回来。如果你要沿着这条路走下去,我会使用colorsys库 - 我有很多例子可供我使用它,如果你还需要,我明天可以找一个(或者如果其他人没有打败我的话。)
或者,你可以选择一种不同的颜色 - 你希望它更白 - 看起来你想要黑色的身体颜色 - this库是好的,虽然可能有点矫枉过正。看看here中的黑洞模拟 - 颜色是白色的,但是当你将它与其他颜色正确地结合在一起时,它们会被认为是热的,它看起来会更亮。除此之外,我认为在matplotlib中添加bloom会非常复杂*。
*如果你真的想要,我想你可以用很多透明层来做,但是因为matplotlib对于3d东西来说很糟糕(它实际上将3d对象绘制成扁平的对象)会很困难,没有交集 - 你需要自己仔细地做,我在其他地方有另一个答案。)