#Python气象 实现NCL绘图风格
谁問你了
2024年09月21日 14:51
收录于文集
Python气象 · 7篇

对ncl绘图结果甚是喜欢,但懒得学习NCL,近期画图发现可以使用python展示类似效果,分享一下(工位除了学习啥都相干)

python绘图与NCL最大的不同在于两个点:colorbar颜色、colorbar设置

1.colorbar颜色

已有大佬将ncl绘图颜色封装成库,可以直接使用

所需库:cmaps

github网址:https://github.com/hhuangwx/cmaps

NCL的colorbar查询网址:https://www.ncl.ucar.edu/Document/Graphics/color_table_gallery.shtml

使用方法:在NCL网址中找到需要的颜色条名称,以BlueDarkRed18为例,绘图时cmap= cmaps.BlueDarkRed18即可

2.colorbar设置

实现NCL绘图风格比较重要的是colorbar颜色映射(好像引入cmaps库就解决了)、两端非箭头、无刻度、颜色分割线

比较具体的设置可以参考云台书使气象绘图加强版(二十八):网页链接,这里展示从中学习的一部分

colorbar两端无箭头:extend= 'neither',同时levels最大值要大于数据最大值,否则大值区会显示白色

colorbar颜色:cmap使用cmaps库的颜色,颜色分割使用cb = fig.colorbar(drawedges= True)

colorbar刻度线:一般cb.ax.tick_params(length= 0)足以解决,但防止仍有小细线,可以下面加一行cb.minorticks_off()

主要设置:

C = ax.contourf(lon, lat, data, cmap= cmaps.MPL_YlGnBu, extend= 'neither', zorder=1, levels= colorlevel)

cb = fig.colorbar(C, drawedges= True)

cb.ax.tick_params(length= 0)

3.例子展示

数据:以CN05降水数据为例,绘制1982-2023年5-8月中国西南逐月降水气候态(shp获取在上一章),这里西南为21-32N, 97-108E

这里使用了sacpy库,是一个气候统计的库,用于筛选月份、季节(尤其冬季)十分好用(日常dataset的sel也可以)

结果展示

评论
赞与转发