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

news2024/10/23 5:02:18

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.coloradmin.cn/o/1844186.html

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

相关文章

【数据库系统概论复习】关系数据库与关系代数笔记

文章目录 基本概念数据库基本概念关系数据结构完整性约束 关系代数关系代数练习课堂练习 语法树 基本概念 数据库基本概念 DB 数据库, 为了存用户的各种数据,我们要建很多关系(二维表),所以把相关的关系(二…

算法训练营day15--110.平衡二叉树+ 257. 二叉树的所有路径+ 404.左叶子之和+222.完全二叉树的节点个数

一、110.平衡二叉树 题目链接:https://leetcode.cn/problems/balanced-binary-tree/ 文章讲解:https://programmercarl.com/0110.%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.html 视频讲解:https://www.bilibili.com/video/BV1Ug411S7m…

odoo 出库发票三大凭证

销售一般有三张凭证 库存计价凭证 库存计价凭证,又称为存货计价凭证或库存评估凭证,在会计和企业资源规划(ERP)系统中,特别是如Odoo这样的系统中,是指记录库存商品成本变动的会计凭证。这些变动通常涉及到…

【牛客深信服总结】

1.反转链表 2.协议 交换机路由器 3.手写代码,一个二叉树,从根节点到叶子结点算一条路径,打印出所有路径。 4.一些数据结构相关的问题,包括栈和队列的应用,链表和数组的区别,最大堆和最小堆,动态…

leetCode-hot100-链表专题

leetCode-hot100-链表专题 链表简介单链表单链表的使用例题206.反转链表19.删除链表的倒数第N个结点24.两两交换链表中的节点25.K个一组翻转链表 双向链表双向链表的使用 循环链表61.旋转链表141.环形链表142.环形链表Ⅱ LinkedListLinkedList的使用 链表简介 参考博客&#x…

Z语言学习——基于通讯案例

目录 1数据类型 2初始状态 3 Alice的消息发送 4 Bob接收与发送消息 5 Alice接收消息 6消息的增删改查 6.1 删除消息 6.2查询消息 6.3修改/增加消息 7定理证明——重要目的 案例背景: (1)构建一个交互式的通讯方案; (2)攻击者控制了所有的通讯…

计算机编码以及URL转码

目录 一、计算机编码 1.ASCII编码 2. GB2312编码 3.GBK编码 4.UTF-8编码 二、URL转码 1.encodeURI和decodeURI 2.encodeURIComponent 和 decodeURIComponent 三、Base64 一、计算机编码 在计算机中,所有的数据在存储和运算时都要使用二进制数表示&#xf…

开源驰骋低代码-积极拥抱AI时代

开源驰骋AI低代码-积极拥抱AI时代 驰骋AI代码开发平台ccfast通过集成人工智能技术,为开发者提供了一系列强大的辅助功能,极大地提升了开发效率和流程体验。以下是针对您列出的功能的详细解释: 概要说明 驰骋低代码开发平台是一款基于云计算和…

【人工智能,机器学习,统计学习,科学表征】开源商用与研发合作

个体工户linjing-lab托管在Github,现公开招募商用与合作人员,目标人群分为以下几个方向: 数学、信息科学、计算机专业的大学高年级学生,熟悉C和面向对象模型,擅长Pybind11编译算子到Python环境。26岁以下的大学本科毕…

Java学习 (四) 面向对象--类与方法

关于面向对象的知识点 1、 java类 以及类成员 属性 方法 构造器 代码块 内部类 2、面向对象特征 封装 继承 多态 3、 其他关键字使用 this \ super \ package \ import \static \ final\ interface\ abstract …

北方高温来袭!动力煤却不涨反跌的原因分析

内容提要 北方高温而南方降雨偏多的格局或将继续,整体水力发电量增长可能继续明显增长,但火电增幅可能继续缩小。5月重点火电厂的发电量和耗煤量增速均呈现负增长,耗煤量月度同比下降7%,而重点水电同比大增近40%。我国电力行业绿…

Apple Phone Memory

Apple Phone Memory 苹果手机内存查询,哪些应用程序(app)占用内存: 设置 通用 iPhone储存空间 清理下QQ音乐:

灵感互娱U3D笔试题

文章目录 题目1解析 题目2解析 题目3解析 题目4数组链表 题目5解析 题目6解析 题目7解析题目8解析 后话 题目1 以下C#代码的输出顺序是什么 namespace ConsoleApp2 {internal class Program{class A{ public A(string text){Console.WriteLine(text);}}class B{static A a1 …

同城跑腿多合一系统源码小程序支持安卓+IOS+公众号+H5

🚀 同城跑腿多合一小程序:便捷生活新选择 💨 一、引言:走进便捷新纪元 在这个快节奏的现代生活中,时间成了最宝贵的财富。而“同城跑腿多合一小程序”正是为了满足大家对于便捷、高效生活的追求而诞生的。它不仅是一款…

高效设计必选!5款好用的UI动效工具

UI 动态设计是应用程序设计的重要组成部分。随着技术的积累,UI设计中的动态效果遍地开花,UI动态效果可以使我们的页面更时尚、更有趣、更人性化。5G网络的快速发展也使美丽的动态效果几乎无缝地嵌入到UI界面中。今天,毫不夸张地说&#xff0c…

豆瓣电影top250网页爬虫

设计思路 选择技术栈:确定使用Python及其相关库,如requests用于发送网络请求,获取网址,用re(正则表达式)或BeautifulSoup用于页面内容解析。设计流程:规划爬虫的基本流程,包括发起请求、接受响应、解析内容、存储数据等环节。模块…

CCF推荐会议必投攻略:这些顶级会议投完直通录取大门

CCF推荐会议必投攻略:这些顶级会议投完直通录取大门! 会议之眼 快讯 CCF介绍 CCF(China Computer Federation)即中国计算机学会,前身是中国电子学会计算机专业委员会,成立于1962年。这是由从事计算机及相…

容器基本概念_从虚拟化技术_到容器化技术_开通青云服务器_并远程连接_容器安装---分布式云原生部署架构搭建007

这一部分,属于以前都会用到的,会快速过一遍,对于关键技术问题会加以说明 https://www.yuque.com/leifengyang/oncloud文档地址在这里,可以看,有些命令可以复制使用 可以看到容器的出现就是 目的就是,让你做的所有的软件,都可以一键部署启动 打包就是docker build 然后: 对于…

Github生成Personal access tokens及在git中使用

目录 生成Token 使用Token-手工修改 使用Token-自动 生成Token 登录GitHub,在GitHub右上角点击个人资料头像,点击Settings → Developer Settings → Personal access tokens (classic)。 在界面上选择点击【Generate new token】,填写如…

ctfshow web七夕杯

web签到 执行命令没有回显&#xff0c;我们直接写文件就可以了 有字符长度限制 ls />a nl /*>a访问url/api/a下载文件 easy_calc <?phpif(check($code)){eval($result."$code".";");echo($result); }function check(&$code){$num1…