正如https://www.youtube.com/watch?v=xAoljeRJ3lU中所宣布的,Matplotlib 将默认颜色图从 jet 更改为 viridis。
但是,我不太了解它。可能是因为我是色盲?
原色图喷射看起来很强烈,我能感觉到对比:
虽然新的颜色图 viridis 缺乏这种对比度:
谁能为我解释一下更简单?我需要我的论文的情节。而且我需要一个充分的理由来说服我的主管(和我自己)相信 viridis 是更好的。
正如https://www.youtube.com/watch?v=xAoljeRJ3lU中所宣布的,Matplotlib 将默认颜色图从 jet 更改为 viridis。
但是,我不太了解它。可能是因为我是色盲?
原色图喷射看起来很强烈,我能感觉到对比:
虽然新的颜色图 viridis 缺乏这种对比度:
谁能为我解释一下更简单?我需要我的论文的情节。而且我需要一个充分的理由来说服我的主管(和我自己)相信 viridis 是更好的。
看这个视频。你也可以用谷歌搜索它,因为到处都有很多(合理的)喷气式飞机抨击。
Jet 非常令人愉悦,因为它绚丽多彩,并且不需要您考虑色标:即使您只有几个异常值,您仍然可以在情节中获得“所有特征”。你自己说过:jet 几乎从不缺乏对比。
然而,这是一个非常高的价格:jet 字面上显示了不存在的东西。它会突然产生对比度:只需在 jet 中稍微改变一下颜色比例,您就会看到图片发生了巨大变化。在 viridis 中做同样的事情,你只会有这样的印象,即你或多或少地对完全相同的事情进行了说明。
如果您不喜欢 viridis,请使用上面视频中讨论的其他颜色图:它们具有相同的好属性,并且不会使您的数据撒谎。还要更改色标:从 0 开始,即使从科学的角度来看它是合乎逻辑的,也可能不是一个好主意来表示这些特定数据(但更改您的颜色条以反映这一点,例如“<25”)。
但是再一次,看视频,里面有很多例子和完整的解释。
你需要绘图是因为你需要显示数据,你需要一个颜色图,因为你知道你显示的颜色不会被所有人平等地看到:任何颜色都是通过我们的视觉感知来解释的。
事实上,颜色是主观的,因为它们被大脑解释(在光谱转化为神经活动的意义上)作为旁边给出的颜色条的函数而不同的价(或值)水平。你的眼睛会不停地扫视,以使情节与条形相匹配。
JET 将被禁止,因为它在感知上是模棱两可的。视觉感知中颜色的第一个特征是它的值,即总亮度,它是最直接的特征。然而,该值在 JET 中是非单调的,因此亮度中的 ONE 值可能会导致感知中的不同值。对于从图像中人为“弹出”的蓝色调(以及大多数时间对应于零值的调)来说尤其如此。检查以下曲线:
Viridis(以及其他替代品)是为了避免这个问题。您可以阅读此选项的完整说明,以及如何使您的颜色图适应要绘制的数据类别。
这应该说服你的主管。
这里已经有几个很好的答案,但我认为从优秀的论文中添加另一个观点仍然是相关的
好的彩色地图:如何设计它们。彼得·科维西。arXiv:1509.03700 (2015)。软件在这里可用。
它以非常清晰的方式阐述了颜色映射设计的原则,并提供了一个非常好的工具来分析它们的感知一致性:
这个“搓板”图有一个从零到一的稳定斜坡,沿着底部从左到右,图的顶部有一个均匀幅度的正弦调制。对于设计合理的彩色地图,顶部的所有边缘都应显示相同或至少相似的对比度。但是,当您jet
进行测试时,很明显情况并非如此:
换句话说,有大量的边缘,在红色,尤其是绿色的延伸部分jet
,被完全消除并变得完全不可见,因为那里的颜色图根本没有任何对比度。当您将其应用于数据时,这些区域的对比度将与边缘相同。同样,底部的鲜明对比应该是平滑的线性比例,表示地图引入了数据中并未真正存在的特征的地方。
使用任何一种色标来直观地表示有序数据的问题在于亮度单调性:也就是说,如果您有满足某种排序关系的数据,那么这种关系不仅应该通过色调的变化来反映,而且通过亮度。“喷射”颜色映射的问题是映射中的最高点(对应于较大的值)被赋予红色,中间范围被赋予黄绿色,最低点是蓝色——但如果我们看看那些颜色的感知“亮度”(即亮度),很明显这种映射不是单调的。您问题中的其他颜色映射修复了此缺陷。
这种特性的原因应该是显而易见的,其中最重要的一点是,如果这些图形以灰度再现,可解释性不会丢失。