gma 地理空间绘图:(1) 绘制简单的世界地图-3.设置地图框

news2025/1/12 1:07:12

内容回顾

gma 地理空间绘图:(1) 绘制简单的世界地图-1.地图绘制与细节调整
gma 地理空间绘图:(1) 绘制简单的世界地图-2.设置经纬网

方法

SetFrame(FrameColor = ‘black’, FrameWidth = 0.6, ShowFrame = True, ShowLeft = True, ShowBottom = True, ShowRight = True, ShowTop = True, TickColor = ‘black’, TickLength = 0.01, TickWidth = 0.4, LabelTickPad = 0.005, Precision = 0, Uint = ‘D’, UseWESN = True, LabelFont = None, LabelFontSize = 5, LabelFontPROP = {}, LabelColor = ‘black’)


功能: 【设置地图框】。配置地图框的边框、标签和刻度。

可选参数:

  FrameColor = str||tuple||None。边框颜色。如果为 None,则生成随机颜色。详见:matplotlib。

  FrameWidth = float。边框线宽。默认 0.6。

以下参数在添加了经纬网(AddGridLines)之后才会生效。

  ShowLeft = bool。是否显示左侧经纬网标签和刻度线。 默认显示(True)。

  ShowBottom = bool。是否显示底部经纬网标签和刻度线。 默认显示(True)。

  ShowRight = bool。是否显示右侧经纬网标签和刻度线。 默认显示(True)。

  ShowTop = bool。是否显示顶部经纬网标签和刻度线。 默认显示(True)。

  TickColor = str||tuplt||None。刻度线颜色。如果为 None,则生成随机颜色。详见:matplotlib。

  TickLength = float。刻度线的相对长度。为相对于地图框 X 方向长度的倍数。默认 0.01 倍。

  TickWidth = float。刻度线线宽(字体单位)。默认 0.4 。

  LabelTickPad = float。刻度线与标签值之间的相对间距。为相对于地图框 X 方向长度的倍数。默认 0.005 倍。

  Precision = int。经纬网标度值保留的小数位数。默认不保留小数位(0)。

  Uint = str。经纬网标度值保留的单位。可以为 ‘D’(度)、 ‘DM’(度分)或 ‘DMS’(度分秒)。

  UseWESN = bool。经纬网标度值是否使用 ‘W’(西经)、‘E’(东经)、‘S’(南纬)、‘N’(北纬)。

  LabelFont = str||None。 标签字体。 默认(None)取决于 matplotlib 设置。

  LabelFontSize = float。 标签字体大小。默认为 7。

  LabelFontPROP = dict。 标签字体的其他属性。详见:matplotlib.font_manager.FontProperties。

  LabelColor = str||tuplt||None。标签字体的颜色。如果为 None,则生成随机颜色。详见:matplotlib。

返回:DataFrame。地图框绘制过程的详细数据。

添加和优化地图框

0.绘制默认的地图框

0.1 仅地图框

from gma.map import plot

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)

# 2.将内置的世界矢量图层添加到地图框(为底图配置随机颜色,并修改边线线宽)
MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)

# 4.设置地图框
Frame = MapF.SetFrame()

0.2 添加经纬网后

from gma.map import plot

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)

# 2.将内置的世界矢量图层添加到地图框(为底图配置随机颜色,并修改边线线宽)
MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)

# 3.添加经纬网(默认参数)
GridLines = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30))

# 4.设置地图框
Frame = MapF.SetFrame()

1.边框颜色和宽度

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两组参数
FramePar = [('black', 0.3),
            ('blue', 1)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30))

    Frame = MapF.SetFrame(FrameColor = FramePar[i][0],
                          FrameWidth = FramePar[i][1])
    
    Axes.set_title(f'FrameColor = "{FramePar[i][0]}", FrameWidth = {FramePar[i][1]}', y = 0.98, fontsize = 9)

plt.tight_layout() 

2.左下右上刻度和标签显示

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两组参数
Show = [(True, False, False, False),
        (True, True, True, False)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30))

    Frame = MapF.SetFrame(ShowLeft = Show[i][0],
                          ShowBottom = Show[i][1],
                          ShowRight = Show[i][2],
                          ShowTop = Show[i][3])
    
    Axes.set_title(f'ShowLeft = {Show[i][0]}, ShowBottom = {Show[i][1]}, ShowRight = {Show[i][2]}, ShowTop = {Show[i][3]}', 
                   y = 0.98, fontsize = 9)

plt.tight_layout() 

3.刻度和标签调整

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两组参数
Tick = [('black', 0.0, 0, 0.01),
        ('Red', 0.04, 1, 0.005)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30))

    Frame = MapF.SetFrame(TickColor = Tick[i][0],
                          TickLength = Tick[i][1],
                          TickWidth = Tick[i][2],
                          LabelTickPad = Tick[i][3])
    
    Axes.set_title(f'TickColor = {Tick[i][0]}, TickLength = {Tick[i][0]}, TickWidth = {Tick[i][2]}, LabelTickPad = {Tick[i][3]}', 
                   y = 0.98, fontsize = 9)

plt.tight_layout() 

4.刻度值样式、精度设置

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两组参数
MarkerValue = [(0, 'D', False),
               (1, 'DMS', True)]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = (-180, 180, 35.5423), LATRange = (-90, 90, 30))

    Frame = MapF.SetFrame(Precision = MarkerValue[i][0],
                          Uint = MarkerValue[i][1],
                          UseWESN = MarkerValue[i][2])
    
    Axes.set_title(f'Precision = {MarkerValue[i][0]}, Uint = "{MarkerValue[i][1]}", UseWESN = {MarkerValue[i][2]}', 
                   y = 0.98, fontsize = 9)

plt.tight_layout() 

5.刻度值字体设置

from gma.map import plot
import matplotlib.pyplot as plt

plt.figure(figsize = (7, 7), dpi = 300)

# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)

######################## 这里绘制两个图进行对比
## 定义两组参数
Font = [('Times New Roman', 5, 'blue'),
        ('SimSun', 10, 'green')]

for i in range(2):
    Axes = plt.subplot(2, 1, i + 1)

    MapF = plot.MapFrame(Axes = Axes, BaseMapProj = 'WGS84', Extent = None)
    MapL1 = MapF.AddLayer(WorldLayer, LineWidth = 0.2)
    GridLines = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30))

    Frame = MapF.SetFrame(LabelFont = Font[i][0],
                          LabelFontSize = Font[i][1],
                          LabelColor = Font[i][2])
    
    Axes.set_title(f'LabelFont = {Font[i][0]}, LabelFontSize = "{Font[i][1]}", LabelColor = {Font[i][2]}', 
                   y = 0.98, fontsize = 9)

plt.tight_layout() 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang alpine Dockerfile 最小打包

最近在ubantu 上进行了 iris项目的alpine 版本打包&#xff0c;过程遇到了一些问题&#xff0c;记录一下。 golang版本 &#xff1a;1.18 系统&#xff1a;ubantu 代码结构 Dockfile内容 FROM alpine:latest MAINTAINER Si Wei<3320376695qq.com> ENV VERSION 1.1 ENV G…

格密码学习笔记(二):连续极小、覆盖半径和平滑参数

文章目录最短距离和连续极小值距离函数和覆盖半径格的平滑参数致谢最短距离和连续极小值 除了行列式&#xff0c;格的另一个基本量是格上最短非零向量的长度&#xff0c;即格中最短距离&#xff0c;其定义为 λ1min⁡x,y∈L,x≠y∥x−y∥min⁡z∈L,z≠0∥z∥.\begin{aligned} …

一起来学ASM字节码插桩:从分析class文件结构开始

文章目录Class字节码class字节码构成类型描述符基本类型描述符非数组的引用类型数组引用类型方法描述符OpCode 操作码Class字节码 Java 能做到 一次编译&#xff0c;到处运行&#xff0c;主要就是靠 class字节码 文件&#xff0c;也就是 java 文件经过编译之后 .java -> .c…

【C语言】刷题|链表|双指针|指针|多指针|数据结构

主页&#xff1a;114514的代码大冒 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 一、移除链表元素 二、反转链表 三&#xff0c;链表的中间结点 四&…

springBoot 事务基本原理

springBoot事务基本原理是基于spring的BeanPostProcessor&#xff0c;在springBoot中事务使用方式为&#xff1a; 一、在启动类上添加注解&#xff1a;EnableTransactionManagement 二、在需要事务的接口上添加注解&#xff1a;Transactional 基本原理&#xff1a; 注解&am…

GB/T28181-2022图像抓拍规范解读及技术实现

规范解读GB28181-2022相对2016&#xff0c;增加了设备软件升级、图像抓拍信令流程和协议接口。我们先回顾下规范说明&#xff1a;图像抓拍基本要求源设备向目标设备发送图像抓拍配置命令,携带传输路径、会话ID等信息。目标设备完成图像传输后,发送图像抓拍传输完成通知命令,采用…

最短距离(dijkstra)

蓝桥杯集训每日一题 acwing1488 有 N 个村庄&#xff0c;编号 1 到 N。 村庄之间有 M 条无向道路&#xff0c;第 i 条道路连接村庄 ai 和村庄 bi&#xff0c;长度是 ci。 所有村庄都是连通的。 共有 K 个村庄有商店&#xff0c;第 j 个有商店的村庄编号是 xj。 然后给出 Q…

8.装饰者模式

目录 简介 角色组成 实现步骤 1. 新建 Log.class&#xff0c;添加如下代码 2. 新建 Log4j.class&#xff0c;继承 Log.class&#xff0c;并实现 record() 方法 3. 新建 Decorator.class&#xff0c;继承 Log.class 4. 新建 Log4jDecorator.class&#xff0c;继承 Decorat…

Java Web 实战 03 - 多线程基础(2)

Java Web 实战 03 - 多线程基础篇 2二 . Thread类常见方法2.1 Thread 的常见构造方法2.2 Thread 的几个常见属性getId()getName()getState()getPriority()isDaemon()案例 : 实现 getId()、getName()、 getState()、getPriority()、isDaemon()、isAlive()2.3 启动一个线程-start…

redis反序列化问题 missing type id property ‘@class‘

Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class java.lang.Object]: missing type id property class刚开始使用的是Jackson2JsonRedisSerializer保存的时候没问题&#xff0…

基于Java+SpringBoot+Vue+Redis+RabbitMq的鲜花商城

基于JavaSpringBootVueRedisRabbitMq的鲜花商城 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、…

制造型企业想要做好数字化改造,要注意以下几点!

很多企业在“工业4.0、智能制造、互联网”等概念满天飞的环境下迷失了方向&#xff0c;不知该如何下手&#xff0c;盲目跟风&#xff0c;看别人投自动化&#xff0c;自己也跟着投&#xff0c;看别人上信息化&#xff0c;自己也跟着上。 其实&#xff0c;智能制造也好&#xff…

网络基础(二)之TCP/UDP协议

目录 传输层 再谈端口号 端口号范围划分 认识知名端口号(Well-Know Port Number) 两个问题 pidof netstat UDP协议 UDP协议端格式 对于16位UDP长度的理解 UDP如何做到封装和解包的&#xff1f; UDP如何做到向上交付(分用问题)&#xff1f; 我们写代码的时候为什么…

OceanBase 第六期技术征文活动|小鱼还能“更快”吗?你来试试

2022 年 8 月 10 日&#xff0c;我们在 OceanBase 年度发布会上正式发布了 OceanBase 4.0&#xff08;代号&#xff1a;小鱼&#xff09;&#xff0c;并在现场展区尝试做了一些有趣的事情&#xff0c;“小鱼”可以单机版部署在个人 PC 以及树莓派&#xff0c;让来到现场的开发者…

项目管理中,导致进度失控的五种错误

项目管理中对工期的控制主要是进度控制&#xff0c;在项目进行中中&#xff0c;由于项目时间跨度长&#xff0c;人员繁杂&#xff0c;如果管理不规范&#xff0c;就容易导致项目进度滞后&#xff0c;如何管理好施工进度是管理者需要解决的问题之一。 1、项目计划缺乏执行力 安…

Allegro如何设通孔Pin和Via的消盘操作指导

Allegro如何设通孔Pin和Via的消盘操作指导 用Allegro做PCB设计的时候,除了可以在光绘设置里面设置内层通孔Pin和Via的消盘,在设计过程中,同样也可以设置消盘效果,以便实时显示,如下图 如何设置,具体操作如下 点击Setup点击Unused Pads Suppression

BigInteger类和BigDecimal类的简单介绍

文章目录&#x1f4d6;前言&#xff1a;&#x1f380;BigInteger类和BigDecimal类的由来&#x1f380;BigDecimal类的优点&#x1f380;BigDecimal类容易引发的错误&#x1f3c5;处理方法&#x1f4d6;前言&#xff1a; 本篇博客主要介绍BigInteger类和BigDecimal类的用途及常…

C语言-基础了解-10-C函数

C函数 一、C函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&#xff0c;但在逻辑上&…

Greenplum-MVCC与数据可见性判断

众所周知&#xff0c;Greenplum内部支持MVCC多版本并发控制&#xff0c;通过MVCC技术&#xff0c;可以支持同一行数据的读写并发问题&#xff0c;从而大大提升并发访问控制的能力。 GP中的MVCC实现 所谓多版本&#xff0c;其含义在于数据的更新和删除操作并不是直接在原数据上…

Web Spider案例 网洛克 第四题 JSFuck加密 练习(八)

声明 此次案例只为学习交流使用&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;切勿用于其他非法用途&#xff1b; 文章目录声明一、资源推荐二、逆向目标三、抓包分析 & 下断分析逆向3.1 抓包分析3.2 下断分析逆向拿到混淆JS代码3.3 JSFuck解决方式…