04 - matlab m_map地学绘图工具基础函数 - 设置网格

04 - matlab m_map地学绘图工具基础函数 - 设置网格

  • 0. 引言
  • 1. 关于m_grid
  • 2. 关于m_utmgrid
  • 3. 结语


0. 引言

   本篇介绍下m_map中网格设置有关的函数m_gridm_utmgrid,其中m_grid较为常用,m_utmgrid为设置UTM网格,仅支持在UTM投影下使用。

   首先,用简单案例对比下设置网格和不设置网格的差异

clc;clear;
figure(1)
subplot(1,2,1)
lon=[-180:180];
lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;
m_proj('miller','lat',82);
m_coast('color',[0 .6 0]);
m_line(lon,lat,'linewi',3,'color','r');

subplot(1,2,2)

lon=[-180:180];
lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;
m_proj('miller','lat',82);
m_coast('color',[0 .6 0]);
m_line(lon,lat,'linewi',3,'color','r');
m_grid('linestyle','none','box','fancy','tickdir','out');

  对比两图可以看出,1. 不调用m_grid设置网格的时候,图的横纵坐标显示为笛卡尔坐标系,并非为设置的投影坐标系;2. 图有被拉伸失去了纵横比,一方面影响美观,另一方面对正确识别地理边界会有影响第二幅图,符合地学图件的特征,横纵坐标显示为投影坐标系刻度,易于识别地理要素。所以,m_grid在绘图的时候还是有必要的。

1. 关于m_grid

  如果是普通制图,直接调用m_grid即可,m_grid是有默认参数的,如下面示例直接执行m_grid也可以绘制网格,但相比于设置了网格线形、标注样式、网格填充等属性的图,有些单调,所以就要了解m_grid的其他属性,以便于美化图示:

figure(2)
lon=[-180:180];
lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;
m_proj('miller','lat',82);
m_coast('color',[0 .6 0]);
m_line(lon,lat,'linewi',3,'color','r');
m_grid; %% 直接调用

  通过执行命令m_grid('get'),可议查看m_grid所有属性,在中输入特定的属性(如m_grid('box','fancy'),可以改变网格及标注的显示样式,有助于美化制图

>> m_grid('get')
      'axes',( gca | axis handle)
      'box',( 'on' | 'fancy' | 'off' ) %控制地图的边框线的类型,可选值为 'fancy'(默认)、'on'、'off'。
      'xtick',( num | [value1 value2 ...]) %X轴显示刻度线数
      'ytick',( num | [value1 value2 ...]) %Y轴显示刻度线数
      'xticklabels',[label1;label2 ...] %X轴标签显示
      'yticklabels',[label1;label2 ...] %Y轴标签显示
      'xlabeldir', ( 'middle' | 'end' ) %X轴标签显示方向,middle正常横向,end竖向
      'ylabeldir', ( 'end' | 'middle' )%Y轴标签显示方向,middle正常竖向,end横向
      'ticklength',value %刻度线长款
      'tickdir',( 'in' | 'out' ) %指定网格线刻度的方向,可选值为 'in'(向内)、'out'(向外)。
      'tickstyle',('dm' | 'da' | 'dd'  ) %坐标带不带NSEW方向color边框颜色
      'color',colorspec %指定网格线的颜色
      'gridcolor',colorspec %仅控制网格的颜色
      'backgroundcolor',colorspec  %控制背景色
      'linewidth', value  %指定网格线的线宽
      'linestyle', ( linespec | 'none' )  %指定网格线的线型,如 '-'、'--'、':' 等。
      'fontsize',value %指定网格线标签的字体大小
      'fontname',name %指定网格线标签命名
      'XaxisLocation',( 'bottom' | 'middle' | 'top' ) %X轴位置
      'YaxisLocation',( 'left' | 'middle' | 'right' ) %Y轴位置

  下面用案例演示常见属性的设置方法效果

示例1

clc;clear
lon=[-180:180];
m_proj('miller','lat',82);
m_coast('color',[0 .6 0]);
m_grid('box','fancy','tickdir','out'); % 设置网格刻度线的方向向外

示例2

% 将示例1的m_grid替换为下面参数
m_grid('box','fancy','tickdir','out','xtick',[-180:45:180],'ytick',[-90:45:90]); % 修改横纵轴刻度的显示

示例3

% 将示例1的m_grid替换为下面参数
m_grid('xtick',[-180:180:180],'xticklabels',({'lon = -180','lon = 0','lon = 180'})); %xticklabel属性使用

示例4

% 将示例1的m_grid替换为下面参数
m_grid('xlabeldir','end','ylabeldir','middle') % 标签显示方向控制

示例5

% 将示例1的m_grid替换为下面参数
m_grid('box','fancy','tickstyle','da')

示例6

% 将示例1的m_grid替换为下面参数
m_grid('box','fancy','color','r') % 指定网格线的颜色,标注字体的颜色也一并变了

示例7

% 将示例1的m_grid替换为下面参数
m_grid('box','fancy','gridcolor','r') % 仅控制网格线的颜色

示例8

% 将示例1的m_grid替换为下面参数
m_grid('box','fancy','XaxisLocation','top','YaxisLocation','right') % 控制刻度显示在图框的位置

2. 关于m_utmgrid

  m_utmgrid函数用于在图上绘制UTM网格,其用法和m_grid相似,最大的差异在于m_utmgrid仅用在UTM投影坐标系下

  • 通过m_utmgrid('set')查看当前UTM网格当前参数
m_proj('UTM', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);
% 绘制 UTM 网格
m_utmgrid;
m_utmgrid('set')
>> m_utmgrid('set')
      ticklength = 0.01
      tickdir = in
      gridcolor =    
      linewidth = 0.5
      linestyle = -
      fontsize = 10
      fontname = Helvetica
      Xcolor =    
      Ycolor =    
      XaxisLocation = bottom
      YaxisLocation = left
  • 通过m_utmgrid('get')查看m_utmgrid可设置的参数:
m_utmgrid('get')
      'ticklength',value         % 刻度线长度设置
      'tickdir',( 'in' | 'out' ) % 刻度方向
      'gridcolor',colorspec      % 网格颜色
      'linewidth', value         % 线宽
      'linestyle', ( linespec | 'none' ) % 线形
      'fontsize',value   % 字体大小
      'fontname',name    % 指定网格线标签命名
      'Xcolor',colorspec % 颜色
      'Ycolor',colorspec % 
      'XaxisLocation',( 'bottom' | 'top' ) % X轴位置
      'YaxisLocation',( 'left' | 'right' ) % Y轴位置

  和m_grid的可设参数相抵,少了许多,但有的参数用法是一致的。

  • 通过m_utmgrid绘制UTM网格示例展示

示例1

clc;clear;

% 初始化 m_map 并设置地图投影为 UTM
m_proj('UTM', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);

% 绘制 UTM 网格
m_utmgrid;
%m_utmgrid('gridcolor','r','linewidth', 2,'tickdir','in','linestyle','-.');
%m_utmgrid('linestyle','-.','gridcolor','g','linewidth', 2);

% 绘制地图网格和边框
m_grid('box', 'fancy', 'tickdir', 'out');

% (可选) 绘制海岸线或其他地理特征
m_coast('patch', [0.7 0.7 0.7], 'edgecolor', 'r');

示例2

% 将上面案例m_utmgrid这一句改为下面内容
m_utmgrid('linewidth', 20,'XaxisLocation','top');

3. 结语

  本篇介绍了m_gridm_utmgrid两个函数的用法,均用于绘制网格,如果绘制草图可以不用了解太多属性,如果要美化或提高绘图质量,掌握函数的附加属性尤为必要






😜
😜😜
😜😜😜😜

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学校图书借阅管理系统(数据库课设)PS:有前端界面

1.课设要求描述 ●实现图书信息、类别、出版社等信息的管理; ●实现读者信息、借阅证信息的管理; ●实现图书的借阅、续借、归还管理; ●实现超期罚款管理、收款管理; ●创建触发器,分别实现借书和还书时自动更新图书信息的在册数量; ●创建视图查询各种图书…

工业AIoT竞赛

模块一:工业物联环境构建 # 查看节点状态 kubectl get nodes # 查看所有 pods 状态 kubectl get pods --all-namespaces cd /data/script/ ls | grep install_openyurt_manager # ./install_openyurt_manager_v5.sh是搜索到的脚本文件 ./install_openyurt_manager_v…

C/C++ struct stat介绍

目录 前言 struct stat struct stat 使用 参考 共勉 前言 本文详细介绍了stat结构体的成员变量,以及使用案例,希望能够帮到您。 struct stat struct stat 结构体用于表示文件或者文件系统对象信息的一种结构体的声明,通常在POSIX&#x…

电子书(chm)-加载JS--CS上线

免责声明: 本文仅做技术交流与学习... 目录 cs--web投递 html(js)代码 html生成chm工具--EasyCHM 1-选择powershell 模式 生成 2-选择bitsadmin模式生成 chm反编译成html cs--web投递 cs配置监听器--->攻击---->web投递---> 端口选择没占用的, URL路径到时候会在…

前端下载文件流,axios设置responseType: arraybuffer/blob无效

项目中调用后端下载文件接口,设置responseType: arraybuffer,实际拿到的数据data是字符串 axios({method: post,url: /api/v1/records/recording-file/play,// 如果有需要发送的数据,可以放在这里data: { uuid: 06e7075d-4ce0-476f-88cb-87fb0a1b4844 }…

AtomicInteger原理和CAS与Synchronized(juc编程)

AtomicInteger原理 4.6.1 原理介绍 AtomicInteger的本质:自旋锁 CAS算法 CAS的全成是: Compare And Swap(比较再交换); 是现代CPU广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。CAS可以将read-modify-write转换为原子操作,这…

vue小总结

知识总结 【 1 】es6 语法总结 # let 定义变量 # const定义常量 ------块级作用域---- # var 以后尽量少用,函数作用域var 在 JavaScript 中是函数作用域或全局作用域。而 let 和 const 是块级作用域。 // 使用 var 声明全局变量 var globalVar "Im a globa…

【机器学习】从理论到实践:决策树算法在机器学习中的应用与实现

📝个人主页:哈__ 期待您的关注 目录 📕引言 ⛓决策树的基本原理 1. 决策树的结构 2. 信息增益 熵的计算公式 信息增益的计算公式 3. 基尼指数 4. 决策树的构建 🤖决策树的代码实现 1. 数据准备 2. 决策树模型训练 3.…

DAB-DETR

论文地址: https://arxiv.org/pdf/2201.12329 文章通过前人的经验得出,导致 DETR 训练速度慢的原因很大可能是因为 decoder 中 cross attention 这个模块,由上面的对比可以看出其与 self attention 的区别主要就在于query的不同。文章猜想两个…

Java 8 Stream API介绍

Java 8引入了Stream API,这是对集合框架的一种增强,它允许你以一种声明式的方式处理数据集合。Stream API的核心在于将数据的操作分为两个主要阶段:中间操作和终端操作。中间操作返回的是一个新的Stream,可以链式调用多个中间操作…

C语言 图的基础知识

图 图的基本概念图的存储方法**邻接矩阵**:邻接表 图的遍历深度优先(DFS)广度优先(BFS) 最小生成树Prim算法Kruskal算法 最短路径问题 图的基本概念 图的定义: 图是由顶点的非空有穷集合与顶点之间关系&am…

opencv的RGB 颜色表

RGB(255,23,140)是光的三原色,也即是红绿蓝Red,Green,Blue,它们的最大值是255,相当于100%。 白色:rgb(255,255,255) 黑色:rgb(0,0,0) 红色:rgb(255,0,0) …

我的创作纪念日--码农阿豪

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

分支结构相关

1.if 语句 结构: if 条件语句: 代码块 小练习: 使用random.randint()函数随机生成一个1~100之间的整数,判断是否是偶数 import random n random.randint(1,100) print(n) if n % 2 0:print(str(n) "是偶数") 2.else语…

模拟原神圣遗物系统-小森设计项目,设计圣遗物(生之花,死之羽,时之沙,空之杯,理之冠)抽象类

分析圣遗物 在圣遗物系统,玩家操控的是圣遗物的部分 因此我们应该 物以类聚 人与群分把每个圣遗物的部分,抽象出来 拿 生之花,死之羽为例 若是抽象 类很好的扩展 添加冒险家的生之花 时候继承生之花 并且名称冒险者- 生之花 当然圣遗物包含…

返回给前端数据的封装

返回格式如下: { "code": 200/400, "msg": "成功"/"失败", "total": n, "data": [ {},{}]} 1.在common中新增Result 类,代码如下 package com.xxx0523.common; import lombo…

【全网最全最详细】RabbitMQ面试题

一、说下RabbitMQ的架构大致是什么样的? RabbitMQ是一个开源的消息中间件,用于在应用程序之间传递消息。它实现了AMQP(高级消息队列协议)并支持其它消息传递协议,例如STOMP(简单文本定向消息协议&#xff…

【机器学习】机器学习重要方法—— 半监督学习:理论、算法与实践

文章目录 引言第一章 半监督学习的基本概念1.1 什么是半监督学习1.2 半监督学习的优势 第二章 半监督学习的核心算法2.1 自训练(Self-Training)2.2 协同训练(Co-Training)2.3 图半监督学习(Graph-Based Semi-Supervise…

蓝鹏测控公司全长直线度算法项目多部门现场组织验收

关键字:全场直线度算法,直线度测量仪,直线度检测,直线度测量设备, 6月18日上午,蓝鹏测控公司全长直线度算法项目顺利通过多部门现场验收。该项目由公司技术部、开发部、生产部等多个部门共同参与,旨在提高直线度测量精度,满足高精度制造领域需…

[SAP ABAP] 数据类型

1.基本数据类型 示例1 默认定义的基本数据类型是CHAR数据类型 输出结果: 示例2 STRING数据类型用于存储任何长度可变的字符串 输出结果: 示例3 DATE数据类型用于存储日期信息,并且可以存储8位数字 输出结果 提示Tips:日期和时间类型的变量可以直接进…