内容回顾

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 pltplt.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 pltplt.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 pltplt.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 pltplt.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 pltplt.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() 

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

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

    内容回顾 gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整 方法 AddGridLines(LONRange = (-180, 180, 15), LATRange = (-90 ...

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

    了解 gma gma 是什么? gma 是一个基于 Python 的地理.气象数据快速处理和数据分析函数包(Geographic and Meteorological Analysis,gma).gm ...

  3. 基于 Python 的地理空间绘图指南

      大部分情况下,地理绘图可使用 Arcgis 等工具实现.但正版的 Arcgis 并非所有人可以承受.本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码 ...

  4. 【教程】基于 Python 的地理空间绘图指南

    大部分情况下,地理绘图可使用 ArcGIS 等工具实现.但正版的 ArcGIS 并非所有人可以承受.本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码实现 ...

  5. 【Qt】2D绘图之绘制简单的图形

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...

  6. java怎么绘画坦克_坦克游戏教程一:使用java绘图功能绘制简单坦克

    时间紧张,直接贴代码: /* * Function: TankGame 1.0 * Draw Tank */ package com.test1; import javax.swing.*; impo ...

  7. 地理空间技术改变世界的未来

    摘要: 地理空间技术是一项重大的科学发现,它将人类的可能性推向了一个全新的水平.那么什么是地理空间技术呢?事实上,它与普通的空间数据不同,地理空间技术的创新使我们能够确定物体或人在地球上的确切位置.人 ...

  8. 用canvas绘制简单的几何图形

    文章目录 添加canvas 调用canvas的API接口 绘制简单的图形 直线 三角形 矩形 圆 清空画布 canvas是一块矩形区域,相当于一块画布.它本身不具有绘图功能,绘图功能主要是由JavaS ...

  9. gma 1.1.2 (2023.01.14) 更新日志(重大更新:开始支持空间绘图)

    重大更新:从本版本开始, gma 逐步 支持空间绘图功能(依赖 matplotlib)! 获取 gma 1.1.2 1.百度网盘: 链接:https://pan.baidu.com/s/1eT2rJR ...

最新文章

  1. JAVA的正则表达式语法
  2. 大龄屌丝自学笔记--Java零基础到菜鸟--028
  3. 中国电信在青岛率先商用NB-IoT 投入30亿推进信息化建设
  4. Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho
  5. Oracle 10g OCP认证资料(官方教材与考试题库)下载
  6. LeetCode 589. N叉树的前序遍历(前序遍历)
  7. CentOS 7.2 安装zabbix 3.4
  8. mysql三高讲解(一):1.2 一个sql语句的执行过程
  9. 如何实现Activiti的分支条件的自定义配置(转)
  10. js中精度问题以及解决方案
  11. 一道错误答案传遍全网的逻辑面试题
  12. 洛谷OJ - P1156 - 垃圾陷阱
  13. <<游戏设计艺术>>笔记
  14. 有道网页翻译chrome插件---我用过的最好的翻译插件
  15. java 机器学习资源整理
  16. 使用VLC把视频转换为一帧一帧的图片
  17. CDH下关于用户权限问题:Error while processing statement:xxxxxxThe directory must be owned by the submitte....
  18. FIIL、南卡、漫步者蓝牙耳机怎么选?国产半入耳蓝牙耳机推荐
  19. iOS Mac小白必备的基本操作
  20. java面向对象知识点整理--用前人智慧,为后人铺路

热门文章

  1. 致敬Peter Shor:重温量子计算的纠错与容错
  2. android12.0(S) Pixel 3XL (QCOM 845) 编译刷机
  3. android Setting模块简介
  4. web前端php需要掌握吗,web前端需要学什么
  5. MyBatis梳理27题1-10
  6. 打印正直角三角形和倒直角三角形
  7. 配电室环境的分布式远程管理
  8. 私募量化交易接口和个人量化交易接口有什么区别?
  9. 焦化废水除氟技术,除氟树脂工艺
  10. Arduino Uno 硬件电路