海洋学专用美观色彩映射:cmocean¶
此软件包包含常用海洋变量的色彩映射。大多数色彩映射最初来自 matplotlib 色彩映射,但现在已使用 viscm 工具进行调整,以实现 感知均匀。
注意
这是 cmocean 的新版本,包含四个新的色彩映射!
注意
我们有一篇论文,其中包含针对您的应用选择色彩映射的指南以及对 cmocean 色彩映射的描述
Thyng, K. M., Greene, C. A., Hetland, R. D., Zimmerle, H. M., & DiMarco, S. F. (2016). True colors of oceanography. Oceanography, 29(3), 10.
这是我们的图库
import cmocean
cmocean.plots.plot_gallery()
![_images/index-1.png](_images/index-1.png)
选择这些色彩映射是为了实现感知均匀,并以顺序、发散或循环(相位色彩映射)的形式反映它们所代表的数据,并具有直观性。例如,algae 色彩映射是绿色的阴影,可以代表叶绿素。
这是色彩映射的亮度
import cmocean
cmocean.plots.plot_lightness()
![_images/index-2.png](_images/index-2.png)
最好用 cam02ucs 色彩空间来思考,其中欧几里得距离等效于人类感知中的变化。使用 viscm 工具可以看到此色彩空间中这些色彩映射的图以及其他一些重要属性。
以下是 haline 色彩映射的一些属性。我们可以看到,该色彩映射可以很好地打印为灰度,在整个色彩映射中具有一致的感知差异,并且对色盲人士具有良好的可视性。它在 3D 色彩空间中具有平滑的表示,并且图像中的细节清晰可见。
import cmocean
cmocean.plots.wrap_viscm(cmocean.cm.haline, saveplot=False)
![_images/index-3.png](_images/index-3.png)
使用 viscm 工具对色彩映射的所有评估都显示在 viscm 工具中的 cmocean 色彩映射页面中。
安装¶
要安装:pip install cmocean
要使用 Anaconda 安装:conda install -c conda-forge cmocean
如果要使用 plots 子模块,则可以使用以下命令安装:
pip install "cmocean[plots]"
这也会安装 viscm
和 colorspacious
。
功能¶
所有色彩映射都在 cmocean.cm
中可用。可以访问它们并按如下方式简单地绘制它们
import cmocean
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.thermal, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.quick_plot(cmocean.cm.algae, ax=ax)
![_images/index-4.png](_images/index-4.png)
可以使用 cmocean.cm.cmapnames
访问所有可用的色彩映射名称
In [1]: import cmocean
In [2]: cmocean.cm.cmapnames
Out[2]:
['thermal',
'haline',
'solar',
'ice',
'gray',
'oxy',
'deep',
'dense',
'algae',
'matter',
'turbid',
'speed',
'amp',
'tempo',
'rain',
'phase',
'topo',
'balance',
'delta',
'curl',
'diff',
'tarn']
可以使用以下方式访问色彩映射实例
In [3]: import cmocean
In [4]: cmaps = cmocean.cm.cmap_d;
使用 256 个 rgb 条目将所有可用的色彩映射打印到文本文件中,使用以下命令:
cmaps = cmocean.cm.cmap_d
cmocean.tools.print_colormaps(cmaps)
输出一个字典来定义色彩映射,使用以下命令:
In [5]: import cmocean
In [6]: cmdict = cmocean.tools.get_dict(cmocean.cm.matter, N=9)
In [7]: print(cmdict)
{'red': [(0.0, 0.99429361496112023, 0.99429361496112023), (0.125, 0.97669801635856757, 0.97669801635856757), (0.25, 0.94873479766923496, 0.94873479766923496), (0.375, 0.90045567698531204, 0.90045567698531204), (0.5, 0.80852468744463613, 0.80852468744463613), (0.625, 0.67108411902889908, 0.67108411902889908), (0.75, 0.51122751026810531, 0.51122751026810531), (0.875, 0.34246319725680402, 0.34246319725680402), (1.0, 0.18517171283533682, 0.18517171283533682)], 'green': [(0.0, 0.93032779532320797, 0.93032779532320797), (0.125, 0.75576791099973906, 0.75576791099973906), (0.25, 0.58413112562241909, 0.58413112562241909), (0.375, 0.41389524263548055, 0.41389524263548055), (0.5, 0.26372603126828165, 0.26372603126828165), (0.625, 0.16249519232276352, 0.16249519232276352), (0.75, 0.10922326738769267, 0.10922326738769267), (0.875, 0.089677516287552023, 0.089677516287552023), (1.0, 0.05913348735199072, 0.05913348735199072)], 'blue': [(0.0, 0.69109690224984077, 0.69109690224984077), (0.125, 0.53031307900834646, 0.53031307900834646), (0.25, 0.40291681995676154, 0.40291681995676154), (0.375, 0.32938102171259315, 0.32938102171259315), (0.5, 0.33885361881305626, 0.33885361881305626), (0.625, 0.37820659039971588, 0.37820659039971588), (0.75, 0.38729596513525039, 0.38729596513525039), (0.875, 0.33739313395770171, 0.33739313395770171), (1.0, 0.24304267442183591, 0.24304267442183591)]}
使用 rgb 输入数组,使用 cmap = cmocean.tools.cmap(rgbin, N=10)
创建色彩映射实例。
可以通过在色彩映射名称后附加“_r”来获得所有色彩映射的反转版本,就像在 matplotlib 中一样
import cmocean
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.gray, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.test(cmocean.cm.gray_r, ax=ax)
fig.tight_layout()
![_images/index-5.png](_images/index-5.png)
您可以使用小于 1 的 alpha 值使用 cmocean.tools.lighten() 函数来减轻色彩映射,以便可以覆盖轮廓和其他更易于看到的线条
import cmocean
import cmocean.cm as cmo
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
Z = np.random.randn(10,10)
ax.pcolormesh(Z, cmap=cmo.matter)
ax = fig.add_subplot(1, 2, 2)
lightcmap = cmocean.tools.lighten(cmo.matter, 0.5)
ax.pcolormesh(Z, cmap=lightcmap)
fig.tight_layout()
![_images/index-6.png](_images/index-6.png)
cmocean 将使用 matplotlib 注册其色彩映射,因此您可以使用例如“cmo.amp”来调用它们
import cmocean
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4, 3))
ax = fig.add_subplot(111)
Z = np.random.randn(10,10)
ax.pcolormesh(Z, cmap='cmo.amp')
![_images/index-7.png](_images/index-7.png)
裁剪色彩映射¶
您可以按您打算绘制的值或按百分比裁剪掉色彩映射的一端或两端。例如,您可以按百分比裁剪掉色彩映射的两端,以减少亮度范围,并且不具有最暗的值
import cmocean
import matplotlib.pyplot as plt
cmap = cmocean.cm.tarn
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(-5, 6, (10,10))
mappable = axes[0].pcolormesh(A, cmap=cmap)
axes[0].set_title('Full diverging colormap')
fig.colorbar(mappable, ax=axes[0])
newcmap = cmocean.tools.crop_by_percent(cmap, 30, which='both', N=None)
mappable = axes[1].pcolormesh(A, cmap=newcmap)
axes[1].set_title('Same colormap,\n30% removed from each end')
fig.colorbar(mappable, ax=axes[1])
![_images/index-8.png](_images/index-8.png)
您可以按百分比裁剪掉色彩映射的一端。例如,您可以裁剪掉 oxy 色彩映射的顶部部分,以防您不考虑过饱和条件(色彩映射的顶部 20%),您可以按如下方式将其从色彩映射中删除
import cmocean
import matplotlib.pyplot as plt
cmap = cmocean.cm.oxy
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(0, 101, (10,10))
mappable = axes[0].pcolormesh(A, vmin=0, vmax=100, cmap=cmap)
axes[0].set_title('Values go to super-saturated')
fig.colorbar(mappable, ax=axes[0])
newcmap = cmocean.tools.crop_by_percent(cmap, 20, which='max', N=None)
A[A>80] = 80
mappable = axes[1].pcolormesh(A, vmin=0, vmax=80, cmap=newcmap)
axes[1].set_title('Values are all\nbelow super-saturated')
fig.colorbar(mappable, ax=axes[1])
![_images/index-9.png](_images/index-9.png)
您可以通过输入您打算在绘图中使用值来删除色彩映射一端的一部分,并让函数找出要从色彩映射中裁剪掉多少。如果您已将海底地形和陆地地形(海洋和陆地海拔)数据组合在一起以使用 topo 色彩映射进行绘制,但您希望水和陆地的最大量级不同,并在色彩映射中反映这一点,则这可能特别有用。
import cmocean
import matplotlib.pyplot as plt
cmap = cmocean.cm.topo
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(-50, 201, (10,10))
mappable = axes[0].pcolormesh(A, vmin=-200, vmax=200, cmap=cmap)
axes[0].set_title('No values<-50, but still\nshow possibility in colorbar')
fig.colorbar(mappable, ax=axes[0])
newcmap = cmocean.tools.crop(cmap, -50, 200, 0)
mappable = axes[1].pcolormesh(A, vmin=-50, vmax=200, cmap=newcmap)
axes[1].set_title('Colorbar only shows color\nrange used by data')
fig.colorbar(mappable, ax=axes[1])
![_images/index-10.png](_images/index-10.png)
色彩映射详细信息¶
thermal¶
thermal 色彩映射是顺序的,深蓝色代表较低、较冷的值,并逐渐过渡到红色,黄色代表增加的较暖的值。
![http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_water_temp.png](http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_water_temp.png)
来自德克萨斯 A&M 大学地球化学和环境研究小组(GERG)的滑翔机数据。
![https://media.springernature.com/m685/springer-static/image/art%3A10.1038%2Fs41598-017-16760-0/MediaObjects/41598_2017_16760_Fig5_HTML.jpg](https://media.springernature.com/m685/springer-static/image/art%3A10.1038%2Fs41598-017-16760-0/MediaObjects/41598_2017_16760_Fig5_HTML.jpg)
来自出版物的数据:Kenel, C., Grolimund, D., Li, X., Panepucci, E., Samson, V. A., Sanchez, D. F., … & Leinenbach, C. (2017). In situ investigation of phase transformations in Ti-6Al-4V under additive manufacturing conditions combining laser melting and high-speed micro-X-ray diffraction. Scientific reports, 7(1), 16358.
![http://www.mdpi.com/sensors/sensors-17-02679/article_deploy/html/images/sensors-17-02679-g002-550.jpg](http://www.mdpi.com/sensors/sensors-17-02679/article_deploy/html/images/sensors-17-02679-g002-550.jpg)
Usamentiaga, R., Ibarra-Castanedo, C., Klein, M., Maldague, X., Peeters, J., & Sanchez-Beato, A. (2017). Nondestructive evaluation of carbon fiber bicycle frames using infrared thermography. Sensors, 17(11), 2679.
![https://user-images.githubusercontent.com/3487237/42728531-d732b9ee-8781-11e8-90da-6f54007fe142.png](https://user-images.githubusercontent.com/3487237/42728531-d732b9ee-8781-11e8-90da-6f54007fe142.png)
上层海洋的 CTD 数据温度图;由 Luz Zarate Jimenez 制作。
![https://user-images.githubusercontent.com/3487237/42728546-16b3a448-8782-11e8-8971-f1e11631645d.png](https://user-images.githubusercontent.com/3487237/42728546-16b3a448-8782-11e8-8971-f1e11631645d.png)
完整水深瓶数据的 pH 值图,其中点表示收集瓶装水的深度;由 Luz Zarate Jimenez 制作。
![https://www.tandfonline.com/na101/home/literatum/publisher/tandf/journals/content/zela20/2018/zela20.v070.i01/16000870.2018.1471911/20180605/images/large/zela_a_1471911_f0001_c.jpeg](https://www.tandfonline.com/na101/home/literatum/publisher/tandf/journals/content/zela20/2018/zela20.v070.i01/16000870.2018.1471911/20180605/images/large/zela_a_1471911_f0001_c.jpeg)
WUNSCH, C. (2018). Towards determining uncertainties in global oceanic mean values of heat, salt, and surface elevation. Tellus A: Dynamic Meteorology and Oceanography, 70(1), 1-14.
![https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/temperature.png](https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/temperature.png)
来自大西洋中部区域协会沿海海洋观测系统(MARACOOS)的滑翔机数据。
来自 tecplot 的海洋模型可视化。
Potter, H. (2018). The cold wake of typhoon Chaba (2010). Deep Sea Research Part I: Oceanographic Research Papers, 140, 136-141.
haline¶
haline 色彩映射是顺序的,可能会使用深蓝色代表较低的盐度或淡水,逐渐过渡到绿色,浅黄色代表增加的盐度或咸水。此色彩映射基于 matplotlib 的 YlGnBu,但使用 viscm 工具从头开始重新创建。
![http://clarkrichards.org/figure/source/2016-04-25-making-section-plots/plot2-1.png](http://clarkrichards.org/figure/source/2016-04-25-making-section-plots/plot2-1.png)
使用 R oce 包绘制 CTD 数据(温度和盐度),作者:Clark Richards
![https://user-images.githubusercontent.com/3487237/42728526-cd276e68-8781-11e8-9d77-db486b479a6d.png](https://user-images.githubusercontent.com/3487237/42728526-cd276e68-8781-11e8-9d77-db486b479a6d.png)
完整水深瓶数据的碱度图,其中点表示收集瓶装水的深度;由 Luz Zarate Jimenez 制作。
![https://user-images.githubusercontent.com/3487237/42728535-df605f5e-8781-11e8-973e-0f7385daef3c.png](https://user-images.githubusercontent.com/3487237/42728535-df605f5e-8781-11e8-973e-0f7385daef3c.png)
上层海洋的 CTD 数据盐度图;由 Luz Zarate Jimenez 制作。
来自大西洋中部区域协会沿海海洋观测系统(MARACOOS)的滑翔机数据。
gray¶
gray 色彩映射是顺序的,从黑色到白色,在感知色彩空间中具有均匀的步长。此色彩映射是通用的,可用于任何顺序数据集。
import cmocean
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.gray, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.quick_plot(cmocean.cm.gray, ax=ax)
![_images/index-11.png](_images/index-11.png)
oxy¶
oxy 色彩映射在大多数情况下是顺序的,代表海水中正常的氧气饱和度范围,并在色彩映射 80% 的位置发散,以代表过饱和状态。色彩映射的底部 20% 为红色,以突出显示低氧或缺氧水域,但为了在应用程序中红色色调不重要的情况下,仍能相对无缝地打印为灰度。发散后,色彩映射的顶部 20% 为黄色,以突出显示过饱和的水。此色彩映射的最小值和最大值旨在控制,以便正确放置低氧和过饱和氧状态。此色彩映射是为密西西比河羽流区域开发的,在该区域中,经常看到并监测低氧和过饱和条件。
![https://cloud.githubusercontent.com/assets/3487237/16996267/85ac01ea-4e7e-11e6-9801-ee97f7e65940.png](https://cloud.githubusercontent.com/assets/3487237/16996267/85ac01ea-4e7e-11e6-9801-ee97f7e65940.png)
德克萨斯A&M大学物理海洋学数值小组 (PONG) 在墨西哥西北湾的模式输出。使用简单的底部氧利用参数化模拟的底部氧气显示了底部氧气的复杂结构。虽然受缺氧影响的区域沿陆架延伸近 400 公里,但在小得多的尺度上(小至几公里)也存在变异。密西西比河/阿查法拉亚河羽流的位置以及羽流中存在的不稳定性决定了缺氧底层水的范围和结构。作者是德克萨斯A&M大学的维罗妮卡·鲁伊斯。
![https://user-images.githubusercontent.com/3487237/42728540-0d24e28e-8782-11e8-8874-82e65d76ef34.png](https://user-images.githubusercontent.com/3487237/42728540-0d24e28e-8782-11e8-8874-82e65d76ef34.png)
上层海洋的CTD数据氧气图;由Luz Zarate Jimenez制作。
深色¶
deep 色彩图从浅黄色开始,可能代表较浅的水,经过淡绿色,逐渐变为深蓝色和紫色,代表深度增加。
![https://cloud.githubusercontent.com/assets/3487237/16900541/4af66c4c-4bf5-11e6-92a9-82eaa39cb18b.png](https://cloud.githubusercontent.com/assets/3487237/16900541/4af66c4c-4bf5-11e6-92a9-82eaa39cb18b.png)
测深图,由Iury Sousa制作
![https://user-images.githubusercontent.com/3487237/42728981-de0d3ee4-878e-11e8-89ca-b124c49d5d0e.png](https://user-images.githubusercontent.com/3487237/42728981-de0d3ee4-878e-11e8-89ca-b124c49d5d0e.png)
索莫夫海测深图,由Josué Martinez Moreno使用blender制作
Gwyther, D. E., O’Kane, T. J., Galton-Fenzi, B. K., Monselesan, D. P., & Greenbaum, J. S. (2018). Intrinsic processes drive variability in basal melting of the Totten Glacier Ice Shelf. Nature communications, 9(1), 3141.
密集¶
dense 色彩图是连续的,低值使用淡蓝色,随着值的增加逐渐变为紫色,这可以用来表示水密度的增加。下面显示了两个来自德克萨斯A&M大学滑翔机的此色彩图示例。此色彩图基于 matplotlib 的 Purples,但使用 viscm 工具从头开始重新创建。
![http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/calc_density.png](http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/calc_density.png)
![https://user-images.githubusercontent.com/3487237/42728541-11ed4d7e-8782-11e8-945c-1e2dcdb61ace.png](https://user-images.githubusercontent.com/3487237/42728541-11ed4d7e-8782-11e8-945c-1e2dcdb61ace.png)
上层海洋CTD数据的潜在密度图;由Luz Zarate Jimenez制作。
藻类¶
algae 色彩图是连续的,低值使用淡绿色,随着值的增加逐渐变为绿色,这可以用来表示水中叶绿素的增加。下面显示了两个来自德克萨斯A&M大学滑翔机的此色彩图示例。此色彩图基于 matplotlib 的 Greens,但使用 viscm 工具从头开始重新创建。
![http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_chlor_units.png](http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_chlor_units.png)
振幅¶
amp 色彩图从淡白色到深红色连续变化,可以用来表示波高值的增加。此色彩图是 balance 色彩图的正半部分。
![https://cloud.githubusercontent.com/assets/3487237/16920916/840d91d4-4cdd-11e6-8db5-f93cd61b78c2.png](https://cloud.githubusercontent.com/assets/3487237/16920916/840d91d4-4cdd-11e6-8db5-f93cd61b78c2.png)
地震震级,由Natalie Accardo使用GMT制作。
![https://media.springernature.com/lw900/springer-static/image/art%3A10.1038%2Fs41598-018-35936-w/MediaObjects/41598_2018_35936_Fig2_HTML.png](https://media.springernature.com/lw900/springer-static/image/art%3A10.1038%2Fs41598-018-35936-w/MediaObjects/41598_2018_35936_Fig2_HTML.png)
Baumgartner, B. L., O’Laughlin, R., Jin, M., Tsimring, L. S., Hao, N., & Hasty, J. (2018). Flavin-based metabolic cycles are integral features of growth and division in single yeast cells. Scientific reports, 8(1), 18045.
Lenhart, H. J., & Große, F. (2018). Assessing the effects of WFD nutrient reductions within an OSPAR frame using trans-boundary nutrient modeling. Frontiers in Marine Science, 5, 447.
Grunert, B. K., Brunner, S. L., Hamidi, S. A., Bravo, H. R., & Klump, J. V. (2018). Quantifying the influence of cold water intrusions in a shallow, coastal system across contrasting years: Green Bay, Lake Michigan. Journal of Great Lakes Research, 44(5), 851-863.
相位¶
phase 色彩图是循环的,在设定的亮度值上跨越所有色调。此图旨在用于诸如波浪相位和潮汐相位之类的属性,这些属性从 0° 环绕到 360° 再到 0°,并且应该在色彩图中没有主要的感知跳跃的情况下表示。
![https://user-images.githubusercontent.com/3487237/42728991-41ed6e0c-878f-11e8-80ad-4623b26de2cc.png](https://user-images.githubusercontent.com/3487237/42728991-41ed6e0c-878f-11e8-80ad-4623b26de2cc.png)
北大西洋的潮汐相位,由Kristen Thyng制作。
平衡¶
balance 色彩图是发散的,深蓝色到灰白色到深红色表示负值到零值到正值;这可以用来表示海平面高度,海平面高度的偏差使用与中性灰白色不同的颜色阴影表示。在这种情况下,选择红色阴影来表示高于参考值(通常是平均海平面)的海平面高度,以便与通常与自由表面增加相关的较暖水域联系起来,例如墨西哥湾的环流。此色彩图的一个示例来自德克萨斯州和路易斯安那州陆架的数值模拟。此色彩图基于 matplotlib 的 RdBu,但使用 viscm 工具从头开始重新创建。
![http://pong.tamu.edu/~kthyng/movies/txla_plots/ssh/2010-07-30T00.png](http://pong.tamu.edu/~kthyng/movies/txla_plots/ssh/2010-07-30T00.png)
![https://pbs.twimg.com/media/CsWzox7UsAAeKwS.jpg](https://pbs.twimg.com/media/CsWzox7UsAAeKwS.jpg)
空间时间海洋学查询系统 (STOQS)
增量¶
delta 色彩图从较深的蓝色发散到略微偏白的颜色,再经过黄绿色的阴影,可用于表示围绕临界值(通常为零)发散的速度值。此色彩图的灵感来自Francesca Samsel的类似色彩图,但使用 viscm 工具从头开始生成。
泥潭¶
tarn 色彩图是发散的,一侧是棕色的干燥阴影,另一侧是绿色和蓝色的范围。色彩图的正端旨在反映 rain 中的颜色,因此对于降雨异常(围绕 0 或其他一些临界值)而言,它是 rain 的补充色彩图。
资源¶
这里有一些我最喜欢的资源。
cmocean在其他地方可用!¶
- 适用于MATLAB,作者是Chad Greene
- 适用于R:Oce海洋学分析软件包,作者是Dan Kelley和Clark Richards
- 适用于海洋数据查看器
- 适用于通用制图工具(GMT),网址为cpt-city,并在github上
- 适用于Paraview,灵感来自Phillip Wolfram。
- 在Plotly中
- Chad Greene的Matlab中的南极制图工具使用cmocean
- 对于Tableau,在github上作为首选项文件
- 对于ImageJ,在LUT上作为首选项文件
- 在iGOTM中,它模拟世界任何地方的水柱。
- cmocean色彩图包含在以下软件包中
精美可视化示例:¶
为什么jet是一个不好的色彩图,以及如何选择更好的色彩图:¶
- 这是我一切开始的文章:为什么工程师和科学家应该担心颜色?
- Matteo Niccoli撰写的关于色彩映射的优秀系列文章,将真正教会您所需了解的知识,请访问 Matteo Niccoli 的博客。
- Jake Vanderplas 对反对使用 Jet 色彩映射的论点的精彩总结,请访问 Jake Vanderplas 的博客。
- 美国气象学会公报(BAMS)中一篇优秀的摘要,总结了可视化研究,并介绍了一种选择良好色彩映射的工具,该工具旨在用于大气研究,但应用广泛。
- 此工具 可以将您的(小文件大小)图像转换为色盲患者所看到的图像,以便您可以更好地决定所使用的颜色。
- 来自 matplotlib 绘图包网站的关于选择色彩映射的文档。
- 关于选择良好的科学色彩映射 的技巧。
- 彩虹的终结,呼吁停止使用 Jet 色彩映射。
- 研究表明,Jet 对您的健康有害!
- 对先前研究的重新审查似乎显示,视觉证据表明锋面实际上只是Jet 色彩映射的伪影。
有一系列来自 2014 年和 2015 年 SciPy 会议的关于色彩映射的演讲。
- Damon McDougall 介绍了使用 Jet 表示数据的问题。
- Kristen Thyng 介绍了如何选择更好的色彩映射,包括使用感知上均匀的色彩映射,并考虑要表示的信息是连续的还是发散的。
- Nathaniel Smith 和 Stéfan van der Walt 进一步解释了 Jet 色彩映射的弊端,甚至对您的健康有害!他们随后提出了 matplotlib(一个 Python 绘图库)的新色彩映射。
- Kristen Thyng 在 Nathaniel 和 Stéfan 所做工作的基础上,提出了用于绘制典型海洋学量的新色彩映射(最终形成了 cmocean!)。
制作优秀图表的其他技巧:¶
- 此链接 提供了一些关于选择线条颜色、色彩映射以及使用离散色彩映射与连续色彩映射的技巧。
- 如何绘制糟糕的图表或者不该做什么 提供了尤其针对线条和条形图的技巧,并总结了一些设计大师 Edward Tufte 的技巧。
联系方式:¶
Kristen Thyng 是 cmocean 的主要开发人员。如有任何问题、意见或想法,请发送电子邮件。我正在收集正在使用的色彩映射的示例(见上文)以及色彩映射的用户,因此如果您正在使用 cmocean,我很乐意收到您的来信。kthyng 在 gmail.com 或在 Twitter 上 @thyngkm 联系。