cmocean 套件¶
子模組¶
cmocean.cmocean 模組¶
cmocean.plots 模組¶
使用色彩映射圖繪製圖形。
-
cmocean.plots.
plot_gallery
(saveplot=False)¶ 製作色彩映射圖和標籤的圖形,如同 matplotlib 範例庫。
參數 saveplot=False – 是否儲存圖形。
-
cmocean.plots.
plot_lightness
(saveplot=False)¶ 一起繪製色彩映射圖的明度。
-
cmocean.plots.
quick_plot
(cmap, fname=None, fig=None, ax=None, N=10)¶ 顯示色彩映射圖的快速測試。
-
cmocean.plots.
test
(cmap, fig=None, ax=None)¶ 透過繪圖測試色彩映射圖。
參數 cmap – 色彩映射圖實例。使用 cm.get_cmap(colormap) 取得具名色彩映射圖。
-
cmocean.plots.
wrap_viscm
(cmap, dpi=100, saveplot=False)¶ 使用視覺差異評估色彩映射圖的優劣。
參數 - cmap – 色彩映射圖實例。
- dpi=100 – 儲存影像的 dpi。
- saveplot=False – 是否儲存圖形。
cmocean.tools 模組¶
使用色彩映射圖繪製圖形。
-
cmocean.tools.
cmap
(rgbin, N=256)¶ 輸入 rgb 值陣列以產生色彩映射圖。
參數 - rgbin – [mx3] 陣列,其中 m 是輸入顏色三元組的數量,它們之間會進行插值以製作傳回的色彩映射圖。也可以輸入十六進位值,格式為 [mx1],並以單引號加上 # 表示。
- N=10 – 要插值的層級數。
-
cmocean.tools.
crop
(cmapin, vmin, vmax, pivot, N=None, dmax=None)¶ 根據 vmin/vmax 值裁剪發散式色彩映射圖的末端。
參數 - cmap – 色彩映射圖物件,例如 cmocean.cm.matter。
- vmin/vmax – 在使用色彩映射圖繪圖時使用的 vmin/vmax 值。
- pivot – 在使用發散式色彩映射圖繪圖時使用的中心點。
- N=None – 使用者可以指定輸出色彩映射圖的列數。如果未指定,則會使用輸入色彩映射圖的 N,並在需要時插值以填入列。
- dmax=None – dmax 是要包含在使用色彩映射圖繪圖中的最高數字;數值幅度高於 dmax 的值會從色彩映射圖的兩端移除。它應該小於 abs(vmin) 和 abs(vmax),且為了使用此參數,abs(vmin) 和 abs(vmax) 應相等。
輸出產生的色彩映射圖物件。
- 此函式可用於循序式和其他非發散式色彩映射圖,
- 但透過 crop_by_percent() 使用會更容易。
- 當最大海底深度值與最大地形不同時,
- 這應該對於使用地形色彩映射圖繪製海底深度和地形資料很有用。
- 使用範例
# 在發散式色彩映射圖的最小端裁剪的範例 vmin = -2; vmax = 5; pivot = 0 newcmap = crop(cmocean.cm.curl, vmin, vmax, pivot) A = np.random.randint(vmin, vmax, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# 在發散式色彩映射圖的最大端裁剪的範例 vmin = -10; vmax = 8; pivot = 0 newcmap = crop(cmocean.cm.delta, vmin, vmax, pivot) A = np.random.randint(vmin, vmax, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
-
cmocean.tools.
crop_by_percent
(cmap, per, which='both', N=None)¶ 根據 per 百分比裁剪色彩映射圖的末端。
參數 - cmap – 色彩映射圖物件,例如 cmocean.cm.matter。
- per – 要移除的色彩映射圖百分比。如果 which=='both',則從色彩映射圖的兩端移除此百分比。如果 which=='min' 或 which=='max',則僅從色彩映射圖的指定末端移除百分比。
- which='both' – 要裁剪的色彩映射圖末端。which='both' 從兩端移除,which='min' 從底端移除,而 which='max' 從頂端移除。
- N=None – 使用者可以指定輸出色彩映射圖的列數。如果未指定,則會使用輸入色彩映射圖的 N,並在需要時插值以填入列。
輸出產生的色彩映射圖物件。
- 這是 crop() 的包裝函式,使其更容易基於百分比進行裁剪。
- 更容易基於百分比進行裁剪。
- 範例
# 使用 oxy 映射圖的範例:裁剪掉黃色部分,這是頂部的 20% # 與完整色彩映射圖比較 vmin = 0; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) fig, axes = plt.subplots(1, 2) mappable = axes[0].pcolormesh(A, vmin=vmin, vmax=vmax, cmap=cmocean.cm.oxy) fig.colorbar(mappable, ax=axes[0]) vmin = 0; vmax = 8; pivot = 5 newcmap = crop_by_percent(cmocean.cm.oxy, 20, which='max', N=None) plt.figure() plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# 使用 oxy 映射圖的範例:裁剪掉紅色部分,這是底部的 20% # 與完整色彩映射圖比較 vmin = 0; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) fig, axes = plt.subplots(1, 2) mappable = axes[0].pcolormesh(A, vmin=vmin, vmax=vmax, cmap=cmocean.cm.oxy) fig.colorbar(mappable, ax=axes[0]) vmin = 2; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) newcmap = crop_by_percent(cmocean.cm.oxy, 20, which='min', N=None) plt.figure() plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# 裁剪色彩映射圖的兩個深色末端以縮小範圍 newcmap = crop_by_percent(cmocean.cm.balance, 10, which='both', N=None) plt.figure() A = np.random.randint(-5, 5, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
-
cmocean.tools.
get_dict
(cmap, N=256)¶ 從 rgb 變更為 LinearSegmentedColormap 預期的字典。程式碼來自 https://mycarta.wordpress.com/2014/04/25/convert-color-palettes-to-python-matplotlib-colormaps/ 和 http://nbviewer.ipython.org/github/kwinkunks/notebooks/blob/master/Matteo_colourmaps.ipynb
-
cmocean.tools.
lighten
(cmapin, alpha)¶ 透過新增 alpha < 1 來淡化色彩映射圖。
參數 - cmap – 色彩映射圖物件,例如 cmocean.cm.matter。
- alpha – 指派給色彩映射圖的 alpha 或透明度值。alpha 為 1 代表不透明,而 1 代表完全透明。
輸出產生的色彩映射圖物件。
- 這會淡化使用輸出繪製的圖形外觀。
- 色彩映射圖物件。也可以在繪圖函式本身中淡化許多圖形(例如 pcolormesh 或 contourf)。
-
cmocean.tools.
print_colormaps
(cmaps, N=256, returnrgb=True, savefiles=False)¶ 將色彩映射圖以 256 種 RGB 顏色印到文字檔案。
參數 returnrgb=False – 是否傳回 rgb 陣列。僅在列印單一色彩映射圖的 rgb 時才有意義。