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

news/2024/11/28 3:47:33/

内容回顾

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


http://www.ppmy.cn/news/30462.html

相关文章

详解JAVA类加载

目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念: 类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组件,负责加载Java类到内存中并使其可以被JVM执行。类…

MySQL运维篇之Mycat分片规则

3.5.3、Mycat分片规则 3.5.3.1、范围分片 根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片。 示例: 可以通过修改autopartition-long.txt自定义分片范围。 注意: 范围分片针对于数字类型的字段,…

GrabCut算法、物体显著性检测

图割GraphCus算法。利用颜色、纹理等信息对GraphCut进行改进,形成效果更好的GrabCut算法。 对图像的目标物体和背景建立一个K维的全协方差高斯混合模型。 其中,单高斯模型的概率密度函数用公式表示为: 高斯混合模型可表示为n个单高斯模型的概…

C++基础——Ubuntu下编写C++环境配置总结(C++基本简介、Ubuntu环境配置、编写简单C++例程)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

微信小程序搭建流程

一、申请微信开发者账号虽然开发微信小程序可以使用工具提供的测试号,但是测试号提供的功能极为有限,而且使用测试号开发的微信小程序不能上架发布。因此说我们想要开发一个可以上架的微信小程序,首先必须要申请微信开发者账号。大家尽可放心…

OpenCV入门(四)快速学会OpenCV3画基本图形

OpenCV入门(四)快速学会OpenCV3画基本图形 1.画点 在OpenCV中,点分为2D平面中的点和3D平面中的点,区别就是3D中点多了一个z坐标。我们首先介绍2D中的点,坐标为整数的点可以直接用(x, y)代替,其中x是横坐标…

PHP CRUL请求GET、POST

// GET请求 public function curlGet($url,$header){ $ch curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_s…

SpringBoot常见面试题汇总(超详细回答)

1.什么是SpringBoot?Spring Boot 是一个基于 Spring 框架的开源框架,用于快速创建独立的、生产级别的、可运行的 Spring 应用程序。它采用了约定优于配置的理念,使开发者可以不需要手动配置大量的 Spring 配置文件,而快速搭建出符…