使用python封装函数为每一幅子图上添加小地图,以中国南海为例,绘制结果如下所示:

其中,主要封装了两个函数,一个用来绘制小地图,一个用来添加海洋、陆地、湖泊、河流等属性,而图中多个子图通过for 循环进行绘制。

代码如下:

import matplotlib.pyplot as pltimport matplotlib.transforms as mtransformsimport cartopy.crs as ccrsimport cartopy.feature as cfeatureimport numpy as npdef adjust_sub_axes(ax_main,ax_sub, shrink):'''   将ax_sub调整到ax_main的右下角.shrink指定缩小倍数。当ax_sub是GeoAxes时,需要在其设定好范围后再使用此函数'''bbox_main = ax_main.get_position()bbox_sub = ax_sub.get_position()ratio = bbox_main.width / bbox_sub.widthwnew = bbox_sub.width* ratio * shrinkhnew = bbox_sub.height*ratio* shrinkbbox_new = mtransforms.Bbox.from_extents(bbox_main.x1 - wnew,bbox_main.y0,bbox_main.x1, bbox_main.y0 + hnew)ax_sub.set_position(bbox_new)def map(ax):ax.coastlines()ax.add_feature(cfeature.OCEAN)ax.add_feature(cfeature.LAND, edgecolor='black')ax.add_feature(cfeature.LAKES, edgecolor='black')ax.add_feature(cfeature.RIVERS)return ax
### 设置投影、画板、子图个数、子图区域
proj = ccrs.PlateCarree()
fig   =   plt.figure(figsize=(10,8),dpi=100)
subplot_kw   =   {'projection': proj}
axes_main = fig.subplots(2, 2, subplot_kw=subplot_kw)
axes_sub  = fig.subplots(2, 2, subplot_kw=subplot_kw)
box_main =[59,151, 0,60]
box_sub = [116,124,20,28]
### 循环绘制子图
for a_main,a_sub in zip(axes_main.flat, axes_sub.flat):ax1=a_mainax1=map(ax1)gl=ax1.gridlines(draw_labels=True, xlocs=[60,90,120,150],ylocs=[10,30,50])gl.xlabels_top = Nonegl.ylabels_right = Falseax1.set_extent(box_main, crs=proj)#===================a_sub=================================================ax2=a_subax2=map(ax2)ax2.set_extent(box_main, crs=proj)adjust_sub_axes(a_main,a_sub,shrink=.3)plt.show()

简单记录一下,可能还有许多细节没有处理到位,欢迎交流~

python 绘制封装函数绘制南海小地图相关推荐

  1. python turtle画滑稽_使用python的turtle函数绘制一个滑稽表情的方法

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  2. Python使用scatter函数绘制点在线的上层

    文章目录 前言 解决办法 效果展示 总结 代码文件 前言 前几天在QQ群里发现有人问这样一个问题,使用Python的matplotlib库绘制图形时,函数 scatter() 绘制的点总是在 plot ...

  3. python使用pie()函数绘制饼图

    目录 1.pie()函数概述 2.pie()函数参数详解 3.pie()函数用法举例 4.pie()函数绘制饼图效果: 1.pie()函数概述 pie()函数用于绘制饼图.如下为pie()函数参数演示 ...

  4. 四旋翼无人机学习第15节--PCB Editor简单绘制封装-手动绘制封装

    文章目录 1 前言 2 class与sub class 3 手动绘制 3.1 芯片手册分析 3.2 手动绘制 1 前言 上一篇博客我们学习了获取封装的几种途径,分别是下载,软件生成与软件转化.本次博客 ...

  5. 用python turtle绘制表情包_使用python的turtle函数绘制一个滑稽表情

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  6. 【python】利用python的tkinter-canvas函数绘制哆啦A梦过程详解(附源码)

    1 引 言 绘制哆啦A梦的过程,其实是对哆啦A梦进行拆解的过程,得先构思出他的头部.眼睛.鼻子.嘴巴.胡须.身体.铃铛.口袋.手以及脚等(如下图所示),才能进行下一步的绘画工作.心中有丘壑,方能水到渠 ...

  7. python怎么封装函数_python怎么封装函数

    什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用. 要了解封装,离不开"私有化" ...

  8. [python数据分析] 简述幂率定律及绘制Power-law函数

    这篇文章主要是最近研究人类行为应用的内容,主要简单叙述下复杂网络的幂率分布以及绘制Power-law函数一些知识,同时是一篇在线笔记.希望对您有所帮助,如果文章中存在不足或错误的地方,还请海涵~    ...

  9. python不支持prelu_python实现并绘制 sigmoid函数,tanh函数,ReLU函数,PReLU函数

    python实现并绘制 sigmoid函数,tanh函数,ReLU函数,PReLU函数 # -*- coding:utf-8 -*- from matplotlib import pyplot as ...

最新文章

  1. 国产海翼号水下滑翔机首次应用于北极科考
  2. C语言实现面向对象的思想
  3. python学习笔记(一):python入门
  4. 每日一练(8)—— 野指针
  5. php: eclipse 编辑 php
  6. 非root用户安装软件
  7. 步长条件梯度下降算法步长和收敛条件的设置的一些看法
  8. 关于rstudio的一些快捷键
  9. sqlldr导入数据(以PostgreSqlOracle为例)
  10. 最新版本的000-919题库
  11. OMC IT监控运维管理平台建设方案
  12. Arduino学习笔记—— 猜数字游戏
  13. 关于wkhtmltopdf生成pdf空白
  14. TypeScript 使用 infer 实现类型推断
  15. LCD1602_3.3V
  16. 11 wifi6速率_实测:华硕、华为、小米、水星,千元以内的wifi6路由器哪家强?...
  17. 调用网易云二维码登录API,实现微信小程序登录
  18. android系统关机广播,Android开机广播和关机广播
  19. scala简介 什么是Scala?
  20. 小心!除了植入木马,你的充电宝可能还在窃听你,受害人遍布全国

热门文章

  1. 2020-09-01 关于shiro的org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager异常
  2. Swift入门第一天(踩坑)
  3. NeHe OpenGL第六课:纹理映射
  4. 记录一次linux内网完整渗透测试
  5. Android 网络请求OkHttp3流程分析
  6. 如何在阿里云以外的服务器上安装安骑士
  7. 基于小梅哥的Xlinx FPGA开发视频的布置作业--用串口控制一个24小时数字钟
  8. 2022-05-20 工作记录--React-多个className的三元表达式写法
  9. win10蓝牙已配对连接不上_Win10系统蓝牙配对手机连接不成功的解决方法
  10. 技巧 | Python 字典用法详解(超全)