爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5424|回复: 8

[源代码] matplotlib嵌套南海子图

[复制链接]

新浪微博达人勋

发表于 2023-1-25 11:47:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 墨家大宝 于 2023-1-25 11:47 编辑

matplotlib嵌套南海子图
  
二维可视化的最高境界是可以控制每一个像素的每一个通道。——我瞎说的

简介
目前大多数教程中用matplotlib在中国地图右下角嵌套南海子图主要方案是通过fig.add_axes方法,在指定位置绘制指定宽高的新图轴。这种方案可行但存在两个问题:

  • 大陆图轴和南海图轴在代码逻辑上是独立的:一旦使用会挤压图轴的操作如fig.colorbar,大陆图轴在画布上的位置大小发生改变,但在此之前绘制的南海图轴不会跟随移动。这导致该方案下南海图轴需要在最后绘制,一行一列的图还勉强不算太麻烦,但若是要在一张图上画上个几行几列,必须先for循环绘制所有大陆图轴,再绘制颜色图例、标题等等,最后再用先for循环绘制所有南海图轴,很不优雅。
  • 由于地图投影问题,最终图轴的宽高不一定是创建图轴时所指定的宽高。这导致若不在绘制南海图轴前通过投影关系计算好比例,最终两个图轴的右下两条边界可能不会重合,很不优雅。

我琢磨出一种优雅的方法,可以优雅地解决这两个问题,核心方法为ax.inset_axes。结合cartopy需要matplotlib>=3.6.x。

论坛贴代码啥的太麻烦,直接贴链接了:
matplotlib嵌套南海子图 (qq.com)
matplotlib嵌套南海子图.png

                               
登录/注册后可看大图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-1-25 20:49:35 | 显示全部楼层
非常好的工作,值得学习!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-1-26 11:11:40 | 显示全部楼层
谢谢分享!!!!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-1-29 15:20:50 | 显示全部楼层
现在出图好像不要等经纬度的,请问有其他的吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-2-6 09:38:21 | 显示全部楼层
lili_01 发表于 2023-1-29 15:20
现在出图好像不要等经纬度的,请问有其他的吗?

可以自行设置,cartopy支持很多投影
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-11-6 17:33:42 | 显示全部楼层
您好,可以分享一下十段线的shp文件名?我在网上没有找到,麻烦您了!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-11-7 11:11:42 | 显示全部楼层
muyuqingye 发表于 2023-11-6 17:33
您好,可以分享一下十段线的shp文件名?我在网上没有找到,麻烦您了!

https://blog.csdn.net/modabao/ar ... 1001.2014.3001.5501
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-11-8 10:15:04 | 显示全部楼层
墨家大宝 发表于 2023-11-7 11:11
https://blog.csdn.net/modabao/article/details/103027316?spm=1001.2014.3001.5501

非常感谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-11-12 10:33:43 | 显示全部楼层
感谢分享!自己琢磨半天也没对齐子图,这下方便了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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