爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11618|回复: 4

[经验总结] python colorbar色标轴对称设置

[复制链接]

新浪微博达人勋

发表于 2020-3-23 10:44:34 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 才仔 于 2020-3-23 11:05 编辑

使用python画填色图时,色标轴如何对称分布的设置

from matplotlib.ticker import MaxNLocator

#绘制高空散度图,数据格式(time,level,latitude,longitude)
cmap = plt.get_cmap('RdBu_r')
levels = MaxNLocator(nbins=13,symmetric=True).tick_values(d[0,1,:,:].min(), d[0,1,:,:].max())#固定色标轴分度值
#norm = BoundaryNorm(levels, ncolors=cmap.N, clip=True)
plt.contour(X,Y,d[0,1,:,:],colors='black',linewidths=1)
f=plt.contourf(X,Y,d[0,1,:,:],levels,cmap=cmap)
cb=plt.colorbar(f,orientation='horizontal',shrink=0.8,pad=0.01)
cb.set_label('divergence',size=15)
cb.ax.tick_params(labelsize=15)

使用MaxNLocator函数将色标轴对称分布,其中symmetric参数设置为Ture


注:
1. cartopy模块省份绘制参考:https://cloud.tencent.com/developer/article/1484356
2. 各省份经纬度数据来自:http://bbs.06climate.com/forum.php?mod=viewthread&tid=92137&highlight=%BE%AD%CE%B3%B6%C8%2Bhdf
3. python matplotlib.ticke.MaxNLocator官网说明 https://matplotlib.org/3.2.0/api/ticker_api.html#matplotlib.ticker.MaxNLocator

test.png

qixiangjiayuan.py

2.59 KB, 下载次数: 10, 下载积分: 金钱 -5

python colorbar色标轴对称设置

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-23 11:31:06 | 显示全部楼层
您好,d[0,1,:,:].min() 这个是指什么的最小值呢?time=0,level =1的值吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-23 11:37:48 | 显示全部楼层
Eegle 发表于 2020-3-23 11:31
您好,d[0,1,:,:].min() 这个是指什么的最小值呢?time=0,level =1的值吗?

指的是0时刻,第1层时,d数组是个二维数组里面的最小值
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-19 16:44:37 | 显示全部楼层
感谢楼主完美地解决了我的疑问,附上丑图一张。还想弱弱问一下楼主,如果希望-0.2~0.2的部分填成白色,该怎么设置呢?

Figure_1.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-3 14:49:25 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表