【问题标题】:How to brighten a color in matplotlib如何在 matplotlib 中使颜色变亮
【发布时间】:2016-07-02 10:56:09
【问题描述】:

有没有办法让 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')] 看起来比现在更亮?

我并不是真的希望颜色“更浅”,而是我希望它更突出,有点像它被照亮并“发光”热。我想保持黄色的温暖,同时让它看起来非常明亮。

我希望它真正脱颖而出,就像它在发光一样。在 matplotlib 中有没有办法做到这一点?

谢谢。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    我能想到的最简单的方法是将其转换为HSL,提高亮度,然后将其转换回来。如果你打算走这条路,我会使用colorsys 库 - 我有很多我使用它的例子,如果你仍然需要它(或者如果别人不会打败我)。

    或者,您可以选择一种不同的颜色 - 您希望它更白 - 看起来您要选择黑色机身颜色 - this 库很好,虽然可能有点矫枉过正。看看here 中对黑洞的模拟 - 颜色本质上是白色,但是当你将它与我们习惯将其关联为热的其他颜色正确结合时,它看起来会更亮。除此之外,我认为在 matplotlib 中添加绽放会非常复杂*。

    *如果你真的想要,我想你可以用很多透明层来做到这一点,但这会很困难,因为 matplotlib 对于 3d 东西很糟糕(它实际上将 3d 对象绘制为平面对象,没有交集 - 你需要自己小心,我在别处有另一个答案)。

    【讨论】:

    • 您好,谢谢您的回答。它会使颜色变亮多少?
    • 这取决于您通过多少改变颜色... 鉴于您只是使用颜色列表,为什么不选择一个看起来适当亮度级别的颜色呢?或者,只需选择您想要的 matplotlib 颜色图? you want "afmhot".
    • 我并不是真的希望颜色“更浅”,而是我希望它更加突出,有点像它被照亮并“发光”很热。
    • 您尝试过 afmhot 吗?你也可以试试深色背景。
    • 很抱歉在这里打扰您,但 Docs 仍然没有评论。我喜欢你与the invisible bridge trick 的接触,以前没见过。但是我遇到了single surfaces(由NaN 断开)和bar plots 等问题。在我看来,这个技巧并不普遍适用。你同意吗?
    猜你喜欢
    • 2016-10-12
    • 2018-03-26
    • 2020-06-09
    • 2018-12-04
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2020-12-16
    相关资源
    最近更新 更多