我们生活的世界是彩色的,形容颜色的“丰富”,“饱满”二词,往往用以形容美好的生活。但是万事皆有度,片面追求颜色的“丰富”,“饱满”,最直接的后果往往不是色彩的和谐,而是你设计师朋友的脑中风。终于,对“直男”配色的不满扩散到了学术圈,多年的积怨在一篇发表在《自然·通讯》上的论文中爆发出来,一篇名为《科学传播中的配色乱象》(The misuse of colour in science communication)的论文批判了以jet为首的配色方案,并给出了科学配色指导。
配色方案jet,虽然看上去以光谱顺序排列的它很“物理”,实际上却是极不科学的配色方案。虽然近来jet的使用越来越少,比如著名的黑洞照片就使用了类lajolla的配色方案,但作为MATLAB等科学软件的默认,想将其根除,恐怕不是什么简单事。
图片| 论文
如果想给中间的黑白原图,以科学传播为目的给其配色,那么使用jet只会让人看不出原图是什么东西,而使用右侧的batlow配色方案则好得多。为什么两种配色方案的观感差这么多?下面我们慢慢来说。
定义颜色
颜色是一种主观概念,和气味一样,并不客观存在于现实世界中。波长为400~760nm之间的电磁波照射在物体上,由于物体表面对不同波长光的反射率不同,反射后,波长能量分布发生变化的光进入我们的眼睛,在视网膜上成像。视杆细胞感受光强,而三种视锥细胞则对不同频率光的敏感度有所区别,这种区别传入我们大脑之后就形成了我们感受到的颜色。也就是说,对于700nm的光,我们都能认出来是红色,但是它在我们眼中的样子是否一致,我们无从知晓。
1931年,国际照明协会(CIE,International Commission on Illumination)将700nm波长光的颜色定义为红色光,将汞的546.1nm和435.8nm发射线分别定义为绿色光和蓝色光。
汞灯光谱| Wikipedia
经过一系列计算,他们设计了一套色彩空间(color space),在色彩空间中他们可以用坐标精确的定义每一种人眼看到的颜色。这种名为CIE 1931的色彩空间直到今天还在使用,其中最为人所熟知的是下面这张色品图(chromaticity diagram)。
色品图有xyz三个坐标,不过x+y+z=1,这是为了避免亮度的影响 | Wikipedia
最外侧是不同波长的单色光,中间的黑线是黑体辐射的颜色,黑体辐射颜色对应的温度被称为色温(Color temperature),而相应特定色温下黑体辐射代表颜色的那个点被称之为白点(white point,技术文档中也经常被叫做reference white或target white),通常为6500K左右,比较接近太阳表面温度。通过特定色温下颜色和白点的距离,我们还可以定义颜色的饱和度(Saturation),离白点越远,饱和度越高。
也就是说,世界上所有的单色光,只有外侧边缘的那一点点,其他所有颜色都是通过不同颜色的光组合而来。
而后,为了调制出各种颜色,各种颜色模式(Color model)又被设计出来。就像在Ps里看到的那样,有用于显示屏的RGB颜色模式,用于印刷的CMYK颜色模式,以及为了模拟人眼感觉设计出来的Lab颜色模式。Lab并不是实验室的意思,而是指它的三个坐标亮度L,品红色和绿色之间的位置坐标a,黄色和蓝色之间的位置坐标b。
在原先的CIE 1931上,颜色的分布在主观上并不均匀,国际照明协会为此1976年发布了CIELAB(简称Lab)。严格来说定义颜色的CIELAB的三个坐标L,a,b都应该是实数(当然实际应用中不可能用实数,很多时候甚至只用整数),和调制颜色使用的RGB整数有显著的区别。也正因如此,Lab可以表示更多颜色。
而在Lab里,我们可以轻易的用Lab坐标定义两个颜色的距离,而这个距离和人的主观感受有一致,在人看来颜色差别越大,两颜色距离越远。将Lab里距离很远的多种颜色放到一起,可以气死你的设计师朋友。由此,我们可以在Lab色彩空间中来评价配色方案的科学性。
配色方案的科学性
我们可以比较配色方案中,两个相邻颜色之间在Lab色彩空间中的距离。这个距离,同时也是颜色之间主观上的距离。
纵轴为相邻颜色之间的距离,横轴为不同数值代表的颜色| 论文
很显然,batlow中相邻颜色之间的距离相较于jet来说要稳定的多。配色方案本身就是绘图的标尺,但如果我们真的用尺子来代表配色方案的话,两者的对比就更加明显。
将batlow和jet两种配色方案形象化为标尺| 论文
标尺的扭曲其实并不罕见,我们常见的世界地图所使用的罗宾森投影法就不可避免地使世界各地的比例尺并不相同,但从来没有哪个投影法会让坐标扭曲的像jet一样毫无章法可循。
此外,还要考虑色彩感觉的一致性。
Jet(右)的色彩顺序和主观不一致| 论文
还是以batlow和jet为例,在batlow中,不同数值分配到的颜色顺序和主观上的颜色,亮度顺序是相同的。而对于jet,顺序不仅错乱,而且颜色顺序和亮度顺序还各自有一套顺序。
而正是颜色和亮度顺序的均匀性、一致性,决定了配色方案看起来是否令人感到舒适。很显然,jet在这方面做的很糟糕。
如果说上面这些只是配色方案之间的好与差的差别,那么对于色盲色弱人群来说,就是可用和不可用的差别了。当然,就算我们不人道地不在乎全色盲人群,当办公室里只有黑白打印机时,我们也不得不考虑配色方案的对色盲色弱人群的适应性。
虽然色弱不如近视那样常见,但是也绝对不是罕见现象。北欧裔中男性的8%和女性的0.5%都有色弱。你可以在这个网站上看看色盲的世界是怎样的。当然,就像近视和失明的关系,色弱和色盲之间存在巨大的差别。大部分色弱只是难以分辨相近的颜色,而不是不能,他们的世界绝不仅有黑白二色。部分色弱甚至还能分辨普通人无法分辨的颜色,站在这个角度,色弱只是相较于大部分人的颜色感知异常。不过如果我们期望科学配色能传达数据之间细微的变化,那么就要考虑到这些人的感受。
下面这个图模拟了不同色盲人群对颜色的观感。注意,模拟的是色盲,色盲人口在色弱人口中并不是多数,而占多数的色弱不会有这么严重的现象。
不同配色方案在不同色盲人群的感知,从左到右分别为正常、乙型色盲、甲型色盲、第三色盲、全色盲。| 论文
可以发现,上面五种较为科学的配色方案,在不同的色盲人群中都有良好的一致性,而jet则在不同情况下则有多种混乱的模式。
Jet是不好,但是我们怎么才能选择合适的配色方案,把我们的设计师朋友从脑中风的边缘拉回来呢?其实答案很早就有,matplotlib的文档中早就写了如何选择合适的配色方案,其默认配色也比较科学。现在还经常见到的糟糕配色,多半是老旧软件、代码的锅。毕竟,代码已经写好了,没有别人要求,为什么要花费功夫去改呢?
为此,论文也建议期刊和会议提供配色指导,并将配色选择加入同行评议标准和研究生教育内容。
更广泛情况下配色方案的选择
当然,实际使用配色方案时情况要复杂的多,顺序(Sequential)的配色方案不可能涵盖所有情况。涉及正负值,不同类型数据在同一张图上表达的情况,还有更多选择配色方案的准则。
使用matplotlib默认配置(viridis)绘制,配色比较科学
对于温度数据,存在一个传统上的零点,冰点0℃。如果使用jet配色方案,那么全球温度看上去会是这样的。
图片| 论文附录1
在0℃处使用绿色,让0℃附近的温度难以识别,同时会让人对高温区域和低温区域的大小产生误判。而如果使用0℃处为白色,并且向两侧颜色逐渐加深的配色方案vik(这类配色方案一般被称为发散的,Diverging),我们就能得到下面这张图。
图片| 论文附录1
高低温的分布一目了然。中西伯利亚和西西伯利亚的温度分布更加清晰,从安第斯山脉到南大西洋的暖带得以分辨,澳大利亚的高温区比原图看上去更加广泛,北太平洋的冷团也有了内部细节。
地形图的绘制也是如此。对于陆地和海洋甚至更多的种类,可以使用多段(Multi-sequential)的配色方案。
图片| 论文附录1
大多数地形图早就使用了多段的配色方案,否则连陆地海洋都无法分辨的地形图肯定不能被人接受,但是段内的顺序还可以进一步改善。
图片| 论文附录1
如果说是为了侧重表现低海拔地区的地形分布,夸张了亚马逊平原的海拔还可以理解。但至少新的oleron配色方案让海洋和陆地的分解更加明显。
除此之外,还有循环配色方案、离散配色方案、分类配色方案等等。论文甚至给出了选择配色方案的详细流程图。
根据不同情况选择合适的配色方案| 论文
所以,下次朋友深夜微信你“来点色图”时,别想歪了,他可能只是熬夜画图时不知道如何选择合适的配色方案了。
撰文:王昱
审校:吴非
参考文献:
[1] Crameri, F。, Shephard, G.E。 & Heron, P.J。 The misuse of colour in science communication。 Nat Commun 11, 5444 (2020)。 [2]。https://doi.org/10.1038/s41467-020-19160-7
[3] https://en.wikipedia.org/wiki/CIE_1931_color_space
[4] https://en.wikipedia.org/wiki/CIELAB_color_space#CIELAB
[5] https://en.wikipedia.org/wiki/Mercury-vapor_lamp
原文经授权转载自公众号“环球科学”(ID:huanqiukexue),如需转载请联系原账号。