海洋學的精美色彩圖: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.

連結:http://tos.org/oceanography/assets/docs/29-3_thyng.pdf

這是我們的圖庫

import cmocean
cmocean.plots.plot_gallery()

(原始碼, png, hires.png, pdf)

_images/index-1.png

選擇這些色彩圖是為了使其在感知上均勻,並在順序、發散或循環(相位色彩圖)方面反映它們所代表的資料,並且直觀。例如,algae 色彩圖是綠色的陰影,可以代表葉綠素。

這是色彩圖的亮度

import cmocean
cmocean.plots.plot_lightness()

(原始碼, png, hires.png, pdf)

_images/index-2.png

最好以 cam02ucs 色彩空間來思考,在該空間中,歐幾里得距離等同於人類感知的變化。使用 viscm 工具可以看到此色彩空間中這些色彩圖的繪圖以及一些其他重要的屬性。

這是來自 haline 色彩圖的一些屬性。我們可以看到,該色彩圖可以很好地列印為灰階,在整個色彩圖中具有一致的感知差異,並且對於患有色盲的人來說具有良好的可視性。它在其 3D 色彩空間中具有平滑的表示,並且影像中的細節清晰可見。

import cmocean
cmocean.plots.wrap_viscm(cmocean.cm.haline, saveplot=False)

(原始碼, png, hires.png, pdf)

_images/index-3.png

使用 viscm 工具對色彩圖的所有評估都顯示在 viscm 工具中的 cmocean 色彩圖 頁面中。

安裝

若要安裝:pip install cmocean

若要使用 Anaconda 安裝:conda install -c conda-forge cmocean

如果您希望能夠使用 plots 子模組,可以改為使用以下方式安裝

pip install "cmocean[plots]"

這也會安裝 viscmcolorspacious

功能

所有色彩圖都可以在 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)

(原始碼, png, hires.png, pdf)

_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)]}

使用 cmap = cmocean.tools.cmap(rgbin, N=10),根據 rgb 輸入陣列建立色彩圖實例。

所有色彩圖的反轉版本都可以透過在色彩圖名稱後附加 "_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()

(原始碼, png, hires.png, pdf)

_images/index-5.png

您可以使用 cmocean.tools.lighten() 函數,將 alpha 值設定為低於 1 來調亮色彩圖,以便您可以覆蓋輪廓和其他更容易看見的線條

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()

(原始碼, png, hires.png, pdf)

_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')

(原始碼, png, hires.png, pdf)

_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])

(原始碼, png, hires.png, pdf)

_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])

(原始碼, png, hires.png, pdf)

_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])

(原始碼, png, hires.png, pdf)

_images/index-10.png

色彩圖詳細資訊

熱力

thermal 色彩圖是連續的,深藍色代表較低的較冷值,並透過紅色過渡到代表增加的較溫暖值的黃色。

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_water_temp.png

來自德州農工大學地球化學與環境研究小組 (Geochemical and Environmental Research Group, GERG) 的滑翔機資料。

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

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

上層海洋 CTD 資料的溫度圖;由 Luz Zarate Jimenez 製作。

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

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://pbs.twimg.com/media/Cxjs6Z8WQAAc_uX.jpg

由 Maarten Reyniers 顯示氣象工作中的溫度。

https://pbs.twimg.com/media/CxtJS8eW8AEGmIm.jpg

來自 NASA OBPG 的 MODIS 海面溫度,由 Sebastian Steinke 提供。

https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/temperature.png

來自中大西洋地區協會海岸海洋觀測系統 (Mid-Atlantic Regional Association Coastal Ocean Observing System, MARACOOS) 的滑翔機資料。

https://www.tecplot.com/wp-content/gallery/geoscience/pugetsound_webimage.jpg

來自 tecplot 的海洋模型視覺化。

https://ars.els-cdn.com/content/image/1-s2.0-S0967063718301638-gr2.jpg

Potter, H. (2018). The cold wake of typhoon Chaba (2010). Deep Sea Research Part I: Oceanographic Research Papers, 140, 136-141.

鹽度

haline 色彩圖是連續的,可以用於深藍色代表較低的鹽度或淡水,透過綠色過渡到淺黃色代表增加的鹽度或較鹹的水。此色彩圖基於 matplotlib 的 YlGnBu,但使用 viscm 工具從頭開始重新建立。

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/calc_salinity.png

來自德州農工大學地球化學與環境研究小組 (GERG) 的滑翔機資料。

http://pong.tamu.edu/~kthyng/movies/txla_plots/salt/2010-07-30T00.png

來自德州農工大學物理海洋學數值小組 (Physical Oceanography Numerical Group, PONG) 的墨西哥西北部灣模型輸出。

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

完整水深瓶資料的鹼度圖,其中點代表收集瓶裝水的水深;由 Luz Zarate Jimenez 製作。

https://user-images.githubusercontent.com/3487237/42728535-df605f5e-8781-11e8-973e-0f7385daef3c.png

上層海洋 CTD 資料的鹽度圖;由 Luz Zarate Jimenez 製作。

https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/salinity.png

來自中大西洋地區協會海岸海洋觀測系統 (Mid-Atlantic Regional Association Coastal Ocean Observing System, MARACOOS) 的滑翔機資料。

太陽能

solar 色彩圖是連續的,從代表低值的深棕色到越來越亮的黃色,可能代表水中輻射的增加。

https://plot.ly/~empet/13620.png

來自 plotly 的直方圖。

ice 色彩圖是連續的,從非常深的藍色(幾乎是黑色)到非常淺的藍色(幾乎是白色)。這的一個用途可以是表示海冰。

http://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/50126/versions/4/previews/seaice/html/SeaIceTimeSeries_20160620.gif

Chad Greene 提供了一個範例,顯示南極洲周圍的海冰濃度。

https://media.giphy.com/media/26xBFRODTXDBKSmVa/giphy.gif

Nikolay Koldunov 提供的北極海冰厚度。

灰色

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)

(原始碼, png, hires.png, pdf)

_images/index-11.png

氧氣

oxy 色彩圖在大部分情況下都是連續的,代表海水中氧氣飽和度的正常範圍,並且在色彩圖的 80% 處發散以代表過飽和狀態。色彩圖的底部 20% 為紅色,以強調缺氧或低氧水,但如果紅色調對於應用程式不重要,仍然可以相對無縫地列印為灰階。發散後,色彩圖的頂部 20% 為黃色,以強調過飽和的水。此色彩圖的最小值和最大值旨在被控制,以便適當地放置低氧和過飽和的氧氣狀態。此色彩圖是為密西西比河羽流區域開發的,該區域定期出現並監測低氧和過飽和條件。

https://cloud.githubusercontent.com/assets/3487237/16996267/85ac01ea-4e7e-11e6-9801-ee97f7e65940.png

德州農工大學物理海洋數值組 (PONG) 在墨西哥灣西北部的模型輸出。利用底部氧氣利用率的簡單參數化模擬海底氧氣,揭示了海底氧氣的複雜結構。雖然受缺氧影響的區域沿著陸棚延伸近 400 公里,但小至幾公里的尺度上的變化也很明顯。密西西比河/阿查法拉亞河羽狀流的位置,以及羽狀流中存在的不穩定性,決定了缺氧底層水的範圍和結構。由德州農工大學的Veronica Ruiz製作。

https://user-images.githubusercontent.com/3487237/42728540-0d24e28e-8782-11e8-8874-82e65d76ef34.png

上層海洋 CTD 數據的氧氣圖;由 Luz Zarate Jimenez 製作。

色彩映射表是連續的,從淺黃色開始,可能表示較淺的水域,然後是淺綠色,最後是越來越深的藍色和紫色,表示深度增加。

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

索莫夫海海底地形圖,由 Josué Martinez Moreno 在 blender 中製作

https://media.springernature.com/lw900/springer-static/image/art%3A10.1038%2Fs41467-018-05618-2/MediaObjects/41467_2018_5618_Fig1_HTML.png

Gwyther, D. E., O’Kane, T. J., Galton-Fenzi, B. K., Monselesan, D. P., & Greenbaum, J. S. (2018)。內在過程驅動托頓冰川冰棚底部融化的變異性。《自然通訊》,9(1),3141。

色彩映射表是連續的,低值為泛白的藍色,隨著值的增加而增加為紫色,可用於表示水密度的增加。以下顯示了兩個這種色彩映射表的範例,來自德州農工大學的滑翔機。此色彩映射表基於 matplotlib 的 Purples,但使用 viscm 工具從頭開始重建。

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

上層海洋 CTD 數據的潛在密度圖;由 Luz Zarate Jimenez 製作。

http://www.sfestuary.org/wp-content/uploads/2012/09/nut-500model_nh4-landsatgray.jpg

舊金山灣的估計氨含量,由 Rusty Holleman 製作。

藻類

藻類 色彩映射表是連續的,低值為泛白的綠色,隨著值的增加而增加為綠色,可用於表示水中葉綠素的增加。以下顯示了兩個這種色彩映射表的範例,來自德州農工大學的滑翔機。此色彩映射表基於 matplotlib 的 Greens,但使用 viscm 工具從頭開始重建。

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_chlor_units.png
https://rbr-global.com/wp-content/uploads/2016/09/WireWalker_data_wide_zoom.png

來自 RBR 的 Del Mar 海洋學 (DMO) Wirewalker 的範例數據,這是一種波浪驅動的剖面系統。

https://pbs.twimg.com/media/Cs_3GXbXgAAPwFQ.png

衛星衍生的 Chl-a,並標示了站點,由 Frankie Pavia 製作。

物質

物質 色彩映射表是連續的,低值為泛白的黃色,隨著值的增加而增加為粉紅色,可用於表示水中物質的增加。以下顯示了兩個這種色彩映射表的範例,來自德州農工大學的滑翔機。

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_cdom_units.png
http://www.sfestuary.org/wp-content/uploads/2012/09/Nut-model_din-landsatgray-500.jpg

舊金山灣的估計溶解氮含量,由 Rusty Holleman 製作。

混濁

混濁 色彩映射表是從淺棕色到深棕色的連續變化,可用於表示水中沉積物的增加。

https://user-images.githubusercontent.com/3487237/42729003-c604db6c-878f-11e8-97e8-978d6c172f3e.png

昆士蘭的數據,由 Emilia P. (@mathinpython) 提供。

速度

速度 色彩映射表是連續的,從表示低值的淺綠黃色到表示大值的深黃綠色。此色彩映射表是 delta 色彩映射表的正半部分。此色彩映射表的範例來自德州和路易斯安那州陸棚的數值模擬。

http://pong.tamu.edu/~kthyng/movies/txla_plots/speed/2010-07-30T00.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

Baumgartner, B. L., O’Laughlin, R., Jin, M., Tsimring, L. S., Hao, N., & Hasty, J. (2018)。基於黃素的代謝循環是單個酵母細胞生長和分裂的整體特徵。《科學報告》,8(1),18045。

https://www.frontiersin.org/files/Articles/422317/fmars-05-00447-HTML/image_m/fmars-05-00447-g004.jpg

Lenhart, H. J., & Große, F. (2018)。在 OSPAR 框架內使用跨界營養素建模評估 WFD 營養素減少的影響。《海洋科學前沿》,5,447。

https://ars.els-cdn.com/content/image/1-s2.0-S0380133018301321-gr4_lrg.jpg

Grunert, B. K., Brunner, S. L., Hamidi, S. A., Bravo, H. R., & Klump, J. V. (2018)。量化淺層沿海系統在不同年份中冷水入侵的影響:密西根湖綠灣。《大湖研究雜誌》,44(5),851-863。

時間

時間 色彩映射表是連續的,從泛白色到深青色,可用於表示波週期值的增加。此色彩映射表是 捲曲 色彩映射表的負半部分。

http://www.sfestuary.org/wp-content/uploads/2012/09/nut500-model_no3-landsatgray.png

舊金山灣的估計硝酸鹽含量,由 Rusty Holleman 製作。

色彩映射表是連續的,從淺色、乾燥的顏色到藍色、潮濕的顏色,可用於繪製降雨量。

https://user-images.githubusercontent.com/3487237/51001559-092d8800-14f6-11e9-93d4-57379b4c7701.png

降雨量,由 Chad Greene 製作。

相位

相位 色彩映射表是圓形的,跨越設定亮度值的所有色調。此映射表旨在用於波相位和潮汐相位等屬性,這些屬性從 0° 到 360° 再到 0° 循環,並且應在色彩映射表中表示,而不會出現主要的感知跳躍。

https://user-images.githubusercontent.com/3487237/42728991-41ed6e0c-878f-11e8-80ad-4623b26de2cc.png

北大西洋的潮汐相位,由 Kristen Thyng 製作。

地形

地形 色彩映射表有兩個不同的部分:一個是藍色和黃色的陰影,表示水深(這是 色彩映射表),另一個是棕色和綠色的陰影,表示陸地海拔高度。

https://user-images.githubusercontent.com/3487237/51001557-0894f180-14f6-11e9-9f8e-94fc0ffcfe11.png

海底地形和陸地地形,由 Chad Greene 製作。

平衡

平衡 色彩映射表是發散的,從深藍色到灰白色到深紅色,表示負值到零值到正值;可用於表示海面高度,海面高度的偏差是偏離中性灰白色的顏色陰影。在這種情況下,已選擇紅色陰影來表示高於參考值(通常是平均海平面)的海面高度,以與通常與自由表面增加相關的較暖的水連接,例如墨西哥灣的環流。此色彩映射表的範例來自德州和路易斯安那州陸棚的數值模擬。此色彩映射表基於 matplotlib 的 RdBu,但使用 viscm 工具從頭開始重建。

http://pong.tamu.edu/~kthyng/movies/txla_plots/ssh/2010-07-30T00.png
https://pbs.twimg.com/media/CsWzox7UsAAeKwS.jpg

空間時間海洋查詢系統 (STOQS)

增量

增量 色彩映射表從較深的藍色發散到略微偏白的顏色,然後通過黃綠色的陰影,可用於表示關鍵值(通常為零)附近的發散速度值。此色彩映射表受到 Francesca Samsel 類似色彩映射表的啟發,但使用 viscm 工具從頭開始生成。

https://pbs.twimg.com/media/CkIWDFRWkAEdArC.jpg

來自 plotly。

http://pong.tamu.edu/~kthyng/movies/txla_plots/u/2010-07-30T00.png

來自德州農工大學物理海洋學數值小組 (Physical Oceanography Numerical Group, PONG) 的墨西哥西北部灣模型輸出。

捲曲

捲曲 色彩映射表從較深的青色發散到略微偏白的顏色,然後通過洋紅色的陰影,可用於表示關鍵值(通常為零)附近的發散渦度值。

http://pong.tamu.edu/~kthyng/movies/txla_plots/vort/2010-07-30T00.png

此色彩映射表的範例來自德州和路易斯安那州陸棚的數值模擬。

https://pbs.twimg.com/media/CuqlwdJWIAA1wT1.jpg

差異

差異 色彩映射表是發散的,一側是藍色陰影,另一側是棕色陰影。

https://user-images.githubusercontent.com/3487237/51001561-092d8800-14f6-11e9-868b-009e947ed5eb.png

2017 年 12 月的地表壓力異常,由 Chad Greene 製作。

苔原

苔原 色彩映射表是發散的,一側是乾燥的棕色陰影,另一側是一系列綠色和藍色。色彩映射表的正端旨在反映 中的顏色,因此是 的雨量異常(約為 0 或其他臨界值)的補充色彩映射表。

https://user-images.githubusercontent.com/3487237/51001558-0894f180-14f6-11e9-91e1-3ef9e28fcc81.png

雨量異常,由 Chad Greene 製作。

資源

以下是我最喜歡的一些資源。

cmocean 在其他地方可用!

  • 色彩映射
  • julia
  • 空間時間海洋查詢系統 (STOQS) 是一個地理空間資料庫軟體套件,旨在提供對原位海洋測量數據的有效存取。

精美視覺化範例:

  • 地球風/洋流/溫度/一切 視覺化:這是一個精彩的全球風和海洋動力學及屬性的視覺化。它也非常適合教學,而且似乎一直在開發中,並獲得新的欄位作為繪圖選項。
  • 這個 秋季樹葉地圖 易於使用、清晰且引人注目。這是我們都渴望的!
  • 來自 The Upshot 的一個巧妙的 視覺化,顯示政治傾向取決於出生年份。這是完美地使用了從紅色到藍色的發散色彩映射表。

為什麼噴射是個糟糕的色彩映射表,以及如何選擇更好的色彩映射表:

有一系列來自 2014 年和 2015 年 SciPy 會議關於色彩映射表的演講

  • Damon McDougall 介紹了使用 jet 色彩映射表表示數據的問題。
  • Kristen Thyng 接著說明如何選擇更好的色彩映射表,包括使用感知上均勻的色彩映射表,並考慮所表示的資訊本質上是循序的還是發散的。
  • Nathaniel Smith 和 Stéfan van der Walt 進一步解釋了 jet 色彩映射表為何不好,甚至對您的健康有害!他們接著為 Python 繪圖函式庫 matplotlib 提出了一個新的色彩映射表。
  • Kristen Thyng 基於 Nathaniel 和 Stéfan 的工作,提出了一組繪製典型海洋學數據的色彩映射表 (最終產生了 cmocean!)。

製作良好圖表的其他訣竅:

製作美觀圖表的工具:

  • Seaborn 將幫助您製作非常美觀的統計圖表。

聯絡方式

Kristen Thyng 是 cmocean 的主要開發者。如有問題、意見和想法,請發送電子郵件。我正在收集色彩映射表在實際使用中的範例(見上文)以及色彩映射表的使用者,如果您正在使用 cmocean,我很樂意收到您的來信。kthyng 在 gmail.com 或在 twitter 上 @thyngkm。