ColorMap的选择和设置

Matplotlib绘图中颜色映射的选择和设置。

1. Matplotlib原生色阶

使用Matplotlib库中自带的颜色映射。使用方式为:

1
2
import matplotlib.pyplot as plt
ax.contourf(x,y,z, cmap=plt.cm.色阶名)

可以通过”色阶名_r“的方式倒置色阶顺序(该方式也可用于NCL的色阶)。

主要分为5种类型的色阶:

1.顺序色阶:同种颜色,逐渐加深。

顺序色阶(Sequential colormap)

2.发散色阶:中间为白色,向两端加深。

发散色阶(Diverging colormap)

3.循环色阶:以相同的颜色开始和结束。

循环色阶(Cyclic colormap)

4.固定色阶:颜色固定排列。

固定色阶(Qualitative colormap)

5.其它。

其它色阶

这里瞬变把Matplotlib中的颜色对应名也一起给出:

颜色对应

参考:https://matplotlib.org/stable/users/explain/colors/colormaps.html

2. NCL原生色阶

NCL包含了丰富的色阶模版,这里推荐通过安装cmaps库来调用(https://github.com/hhuangwx/cmaps):

1
conda install -c conda-forge cmaps

用法很简单:

1
2
import cmaps
ax.contourf(x,y,z, cmap=cmaps.色阶名)

特别是还方便地提供了4种颜色处理方法:

  1. 色阶切片:

    1
    2
    cmps.amwg256[20:-20:2]
    cmps.amwg256[-20:20:-2]
  2. 添加颜色:

    1
    cmps.amwg256+WhiteBlueGreenYellowRed
  3. 色阶插值:

    1
    2
    cmaps.amwg256.interp(50)
    cmaps.amwg256.interp(1000)
  4. 设定颜色数量:

    1
    cmaps.amwg256.to_seg(N=100)

这里我将NCL官网图库中的色阶列在下边(按类型):

Rainbow color tables

Small rainbow color tables

Earth/Ocean color tables

Oceanography color tables

Aid in color blindness color tables

MeteoSwiss color tables

Blue/Red color tables

Blue/Green color tables

Red/Orange color tables

Red/Green color tables

Green/Yellow color tables

Red/Purple color tables

Blue/Purple color tables

Green/Purple color tables

Brown/Copper color tables

Blue/Yellow/Red color tables

Blue color tables

Purple color tables

Green color tables

Gray color tables

Banded color tables

Faded color tables

Circular color tables

Miscellaneous color tables

Vegetation color tables

White-in-the-middle color tables

Starts-with-white color tables

GMT color tables

GrADS color tables

Ncview color tables

SVG color tables

ColorBrewer color tables

3. 自定义颜色

这里推荐几个自定义颜色配色方案网站:

  1. Colors: https://coolors.co/palettes/trending
  2. Color Hunt: https://colorhunt.co/
  3. Adobe Color: https://color.adobe.com/zh/create/color-wheel
  4. 渐变色工具: https://c.runoob.com/more/gradients/#LemonLime