爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14469|回复: 6

[求助] 关于Python 自动设定colorbar

[复制链接]

新浪微博达人勋

发表于 2020-3-31 12:00:53 | 显示全部楼层 |阅读模式

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

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

x
各位老师专家教授同学同事同行亲们,
(ticks=np.linspace(0,20,11)),这里怎么设置才能不设定范围,但是设定间隔呢。
固定设置的会了,因为涉及到多要素多层数值范围比较多样,所以想自动出来。
谢谢各位!!
  1. ax.xaxis.set_major_locator(MaxNLocator())
  2. cmap1   = plt.get_cmap('rainbow')  
  3. plt.contourf(lon,lat,q*1000,100,cmap=cmap1,transform=ccrs.PlateCarree())
  4. plt.colorbar(ticks=np.linspace(0,20,11))
复制代码

这是plt.colorbar(ticks=p.linspace(0,20,11))

这是plt.colorbar(ticks=p.linspace(0,20,11))

这是plt.colorbar(),色标就乱七八糟了

这是plt.colorbar(),色标就乱七八糟了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-31 13:53:50 | 显示全部楼层
本帖最后由 失落的积雨云 于 2020-3-31 13:55 编辑

lim=np.arange(4, 20, 2)plt.contourf(lon, lat, q, lim)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-31 18:27:59 | 显示全部楼层
那可以考虑将数组中的最大最小值,进行一个余数计算,向上向下+-间隔就行了啊
比如范围里边最小值是6,最大值19,想要colorbar的tick间隔4
那6除4得1余2,那tick可以从tick_down=(1+1)*4=8开始
同理19除4得4余3,tick在tick_up=4*4=16结束
最后plt.colorbar(ticks=np.arange(tick_down , tick_up+4 , 4 ))即可
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-31 20:45:40 | 显示全部楼层
失落的积雨云 发表于 2020-3-31 13:53
lim=np.arange(4, 20, 2)plt.contourf(lon, lat, q, lim)

谢谢回复,我可能没说清楚,不是填色,是colorbar
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-31 20:48:03 | 显示全部楼层
Masterpiece 发表于 2020-3-31 18:27
那可以考虑将数组中的最大最小值,进行一个余数计算,向上向下+-间隔就行了啊
比如范围里边最小值是6,最 ...

谢谢您,想再请教下,我想改成那种根据读取的数据自动调整,比如有的是-200 200,有的是0 3000,有的是10 20。因为想自动出图,涉及的变量很多,结果也是各种各样的。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-7 14:56:36 | 显示全部楼层
Real-萧建仁 发表于 2020-3-31 20:45
谢谢回复,我可能没说清楚,不是填色,是colorbar

cs=plt.contourf(lon,lat,q,lim)  cbar=plt.coloarbar(cs)  绘制填色图的时候设置好取值范围和间距,colorbar就按照填色图的设置画呗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-7 16:03:56 | 显示全部楼层
楼主要想实现这个,貌似楼上masterpiece说的思路是必须的。就是说,必需设计这么一步——把数组的极大值和极小值算出来,再根据这个范围去自定义地生成想要的间隔方案。貌似matplotlib本身是不能直接实现你说的需求。如果有的话,也请哪位大神分享。毕竟我也困扰了一阵子。。。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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