10 - matlab m_map地学绘图工具基础函数 - 绘制多边形区域、流线图、散点图和添加注释的有关函数

10 - matlab m_map地学绘图工具基础函数 - 绘制多边形区域、流线图、散点图和添加注释的有关函数

  • 0. 引言
  • 1. 关于m_patch
  • 2. 关于m_streamline
  • 3. 关于m_scatter
  • 4. 关于m_annotation
  • 5. 结语


0. 引言

   本篇介绍下m_map绘制多边形区域函数(m_patch)、绘制流线图函数(m_streamline)、绘制散点图函数(m_scatter)、添加注释函数(m_annotation),其中添加注释的函数用的较多。

1. 关于m_patch

  m_patch函数可以用于绘制多边形区域,并可以使用命令对绘制的图形进行填充,如颜色、透明度等。

  m_patch函数的一般形式如下:

m_patch(lat, lon, cdata, varargin)

  其中,lat 和 lon 是多边形各顶点的经维度坐标,以向量形式给出;cdata 是用于填充多边形的数据,可以是一个标量值或者一个与顶点数相同的向量varargin为可选参数用于设置填充区域的样式、边界等属性,如 EdgeColorFaceAlphaLineStyle等。

  下面是一个m_patch函数的简单的示例,在前面介绍m_coast函数的时候,介绍过对边界填充,输入的参数为“patch”,其本质是在调用m_patch函数为海岸线内填充颜色:

%% 示例2
figure(2)
m_proj('miller', 'lat', [-90 90], 'long', [-180 180]);

lat = [-90 0 90 0]; % 纬度
lon = [0 -100 0 100]; % 经度
cdata = 1;

% 绘制并填充多边形区域
m_patch(lon,lat,'red','FaceColor','green','edgecolor','red','linewidth',2);

m_grid('box','fancy','tickdir','in');
colormap(flipud(copper));

2. 关于m_streamline

  m_streamline 函数用于在地图上绘制流线。流线指示流体运动方向的线条,通常用于可视化气象、海洋流动、风场等方向场的数据

  m_streamline函数一般形式如下:

m_streamline(lon, lat, u, v, varargin)
  • lonlat 是流场数据的经度纬度坐标网格;
  • uv 是经度和纬度方向上的流场速度分量网格;
  • varargin表示还有其他可选参数,如arrowsmode表示是否绘制方向向量的朝向箭头默认是绘制的,可以使用noarrowsmode参数使箭头不绘制method可以选择使用特定的插值方法,可以选择插值方法有线形插值(linear)、样条插值(Cubic)和最近邻插值(nearest);

  下面示例模拟了一个场数据进行流线图的绘制:

figure;
m_proj('miller', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);
% 在地图上绘制海岸线
m_coast('color', 'k');
colormap([m_colmap('land')])
m_etopo2('shadedrelief','lightangle',45);
% 生成一些模拟的经纬度数据
lon = 69.5:0.2:105.5;
lat = 24.5:0.2:40.5;
[lon_grid, lat_grid] = meshgrid(lon, lat);
% 生成一些模拟的流场数据,例如风场
u = cosd(lat_grid) .* cosd(lon_grid);
v = sind(lon_grid);
% 绘制流线图
m_streamline(lon_grid, lat_grid, u, v,'arrowsmode');
%m_streamline(lon_grid, lat_grid, u, v,'noarrowsmode','nearest');
% 添加标题和标签
title('流线图示例');
xlabel('经度');
ylabel('纬度');
m_grid

3. 关于m_scatter

  m_scatter函数用于在地图上绘制散点,即在地图上显示具有特定经纬度坐标的点。

h = m_scatter(long,lat,varargin)

  其中,long,lat 表示绘制散点的投影坐标向量;varargin可选参数,设置散点的颜色、轮廓、填充、线宽等属性m_scatter函数在底层调用了matlab的scatter函数,所以可选参数大多和scatter函数的一致

  m_scatter函数绘图示例,通过填充、控制点的形状、控制点轮廓线宽等参数修改了散点的样式

clf;
m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');

lon = [-121.98, -122.40, -126.62];
lat = [48.78, 49.77, 50.88];
sizes = [10, 20, 15]; % 指定每个点的大小
%m_scatter(lon, lat, sizes, 'Marker', 'o', 'Color', 'r') % 使用红色圆圈绘制散点图
m_scatter(lon, lat, sizes,'filled','Marker', 'o','LineWidth',2,'MarkerEdgeColor','r') % 使用红色圆圈绘制散点图
m_grid('linewi',2,'linest','none','tickdir','out','fontsize',12);

4. 关于m_annotation

  m_annotation函数用于在地图上添加注释。这个函数可以用来在地图上标记特定的地理位置、添加文本说明、绘制箭头等

  m_annotation函数一般形式如下:

h = m_annotation(varargin)

  其中,varargin表示所有参数均为可选参数。特定位置可以添加的图形样式如下:

  • 'rectangle' 绘制矩形区域,m_annotation(‘rectangle’,lon_left, lat_botton, width, height) , lon_left, lat_botton表示绘图区域从左下开始,输入坐下位置的坐标点,width, height表示绘制的矩形的长宽值;

  • 'ellipse'绘制椭圆区域, m_annotation(‘ellipse’,lon_left, lat_botton, width, height) ,,lon_left, lat_botton表示绘图区域从左下开始,输入坐下位置的坐标点,width, height表示绘制的椭圆的长短半轴长;

  • 'textbox' 绘制文本框, m_annotation(‘textbox’,lon_left, lat_botton, width, height) ,lon_left, lat_botton表示绘图区域从左下开始,输入坐下位置的坐标点,width, height表示绘制的文本框的长宽;

  • 'line' 绘制线,m_annotation(‘line’,lon,lat),其中lon,lat为投影坐标下的经纬度向量;

  • 'arrow' 绘制箭头,m_annotation(‘arrow’,lon,lat),其中lon,lat向量长度为2,表示绘制箭头的起止坐标;

  • 'doublearrow' 绘制双向箭头,m_annotation(‘doublearrow’,lon,lat),其中lon,lat向量长度为2,表示在两个坐标的位置绘制箭头;

  • 'textarrow' 绘制箭头并在尾端添加注释,m_annotation(‘textarrow’,lon,lat),其中lon,lat向量长度为2,表示绘制箭头的坐标和添加注释的坐标;

  下面是一个示例,包含了上面提到的所有注释样式的使用方法:

close all;clc;clear;
m_proj('mercator', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);

%% 
h = m_annotation('arrow',[80.5,82.5],[34.5,32.5],'Color','r'); % 绘制两个坐标的箭头(投影坐标系)
h = m_annotation('line',[80.5,78.5],[34.5,30.5],'Color','g'); % 绘制两个坐标的直线(投影坐标系)
h = m_annotation('doublearrow',[80.5,78.5],[34.5,30.5],'Color','c'); % 绘制两个箭头的连线(投影坐标系)

th=annotation('textarrow',[0.3,0.6],[0.7,0.4],'String','ABC'); % 绘制箭头并在尾端注释(要求输入坐标归一化)
str = {'使用FitBoxToText属性','使文字紧贴边框'};
th=annotation('textbox',[0.6,0.35,0.3,0.3],'Color','r','String',str,'FontWeight','bold','FitBoxToText','on'); %  [x y w h] 形式的四元素向量。前两个元素指定文本框、矩形或椭圆的左下角相对于图窗左下角的坐标。后两个元素分别指定注释的宽度和高度。
th=annotation('textbox',[0.6,0.3,0.2,0.2],'Color','r','String',{'不使用','FitBoxToText属性'},'FontWeight','bold');
th=annotation('rectangle',[0.2,0.4,0.1,0.2],'Color','#7E2F8E'); % 绘制矩形区域
th=annotation('ellipse',[0.2,0.2,0.4,0.1],'Color','#A2142F'); % 绘制椭圆区域
%
m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸线
m_gshhs('ir2','color','b')   % 中等分辨率河流
m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

5. 结语

   本篇介绍了m_map绘制多边形区域m_patch)、绘制流线图m_streamline)、绘制散点图m_scatter)、添加注释m_annotation)的有关函数,通过示例展示了各函数的本用,对于绘制常见地学图已经够用了,后面若发现还有其它相关/相似函数再进行补充希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

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

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

相关文章

数据库组成及原理

属性: 把数据库中的一个表类比成一个公司,那么公司里的每个人都是一个“属性”(表中的一个字段视为一个属性),不管老板还是员工,只要是公司里的人,就都是一个属性。 主键: 老板就是“…

Docker安装PostgreSQL详细教程

本章教程,使用Docker安装PostgreSQL具体步骤。 一、拉取镜像 docker pull postgres二、启动容器 docker run -it --name postgres --restart always -e POSTGRES_PASSWORD=123456 -e

配置windows环境下独立浏览器爬虫方案【不依赖系统环境与chrome】

引言 由于部署浏览器爬虫的机器浏览器版本不同,同时也不想因为部署了爬虫导致影响系统浏览器数据,以及避免爬虫过程中遇到的chrome与webdriver版本冲突。我决定将特定版本的chrome浏览器与webdriver下载到项目目录内,同时chrome_driver在初始…

客户端渗透

1.一键可执行程序 2.给程序加壳 3.宏病毒感染文档 4.Android apk 利用 1.一键可执行程序 介绍:我们要进行客户端渗透,我们生成一个可执行程序,也是简单粗暴,MSF建立监听,把它发给受害者,只要受害者点击…

使用U盘重装系统

目录 一、 制作启动盘 1. 准备一个U盘和一台电脑 2. 下载win10安装包 二、安装操作系统 1. 插入系统安装盘 2. 通过进入BIOS界面进入到我们自己制作的启动盘上 三、安装成功后进行常规设置 一、 制作启动盘 1. 准备一个U盘和一台电脑 注意:提前备份好U盘内的…

15- 22题聚合函数 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例子2.15 - 有趣的电影2.16 - 平均售价2.17 - 项目员工 I2.18 - 各赛事的用户注册率2.19 - 查询结果的质量和占比2.20 - 每月交易 I2.21 - 即时食物配送 II2.22 - 游戏玩法分析 IV 1. 相关知识点 函数 函数含义order by排序group by分组between 小值 an…

272. 最长公共上升子序列

Powered by:NEFU AB-IN Link 文章目录 272. 最长公共上升子序列题意思路代码 272. 最长公共上升子序列 题意 如题 思路 若按这个思路的话&#xff0c;代码为 O ( n 3 ) O(n^3) O(n3) for (int i 1; i < n; i ) {for (int j 1; j < n; j ){f[i][j] f[i - 1][j];…

如何使用ECharts和Java接口实现可视化的数据挖掘

如何使用ECharts和Java接口实现可视化的数据挖掘 【引言】 随着大数据时代的到来&#xff0c;数据挖掘成为了一项重要的技术&#xff0c;在企业决策、市场分析等领域发挥着重要作用。数据挖掘需要将大量的数据进行分析和展示&#xff0c;而可视化是一种直观、形象的展示方式。…

wasm的逆向之旅一

目录 概要 技术名词解释 1、WebAssembly 指令集概览 1)基本结构 2)数据类型 3)模块和函数 4)指令概览 1.i32 整数运算 2.i32 浮点数运算&#xff08;用法同整数运算&#xff09; 3.逻辑运算和位移(用法同整数运算) 4.内存访问指令 6.控制流指令 7.模块和导出指令 8.其他常…

Landsat数据从Collection1更改为Collection2

目录 问题解决 问题 需要注意!您使用的是废弃的陆地卫星数据集。为确保功能持续&#xff0c;请在2024年7月1日前更新。 在使用一些以前的代码时会遇到报错&#xff0c;因为代码里面用的是老的数据集 解决 对于地表反射率SR&#xff0c;需要在name中&#xff0c;将C01换为C02&…

weblogic加入第三方数据库代理驱动jar包(Oracle为例)

做的是国企项目&#xff0c;项目本身业务并不复杂&#xff0c;最复杂的却是服务器部署问题&#xff0c;对方给提供的服务器分内网、外网交换网&#xff0c;应用在交换网&#xff0c;数据库在内网&#xff0c;应用不能直接访问内网数据库&#xff0c;只能通过安全隔离网闸访问内…

初学Spring之 IOC 控制反转

Spring 是一个轻量级的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的框架 导入 jar 包&#xff1a;spring-webmvc、spring-jdbc <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc&l…

OpenCV教程02:图像处理系统1.0(翻转+形态学+滤波+缩放+旋转)

-------------OpenCV教程集合------------- Python教程99&#xff1a;一起来初识OpenCV&#xff08;一个跨平台的计算机视觉库&#xff09; OpenCV教程01&#xff1a;图像的操作&#xff08;读取显示保存属性获取和修改像素值&#xff09; OpenCV教程02&#xff1a;图像处理…

调试 hipcc 的llvm llc gpu目标代码生成模块

源码&#xff1a; hello_vectorAdd.hip: __global__ void vectorAdd(const float *A, const float *B, float *C) {int i blockDim.x * blockIdx.x threadIdx.x;C[i] A[i] B[i] 0.0f; } Makefile: x.O1.s: hello_vectorAdd.hip../../local_amdgpu/bin/clang ./hello_vec…

【C++】#1

关键字&#xff1a; 基本框架、多个main执行、快捷键、cout规则 基本框架&#xff1a; #include <iostream> using namespace std;int main() {//具体内容return 0; } 多个main函数可执行&#xff1a; 常用快捷键&#xff1a; cout规则&#xff1a;

eventloop 事件循环机制 (猜答案)

// eventloop 事件循环机制// console.log(555);setTimeout(() > {console.log(666);})let p new Promise((resolve,reject)>{// 同步执行console.log(111);resolve();});// promise 的回调函数是异步的微任务p.then(v > {console.log(222);}, r > {console.log(r…

pjsip环境搭建、编译源码生成.lib库

使用平台&#xff1a; windows qt(5.15.2) vs(2019)x86 pjsip版本以及第三方库使用 pjsip 2.10 ffmpeg4.2.1 sdl2.0.12pjsip源码链接&#xff1a; https://github.com/pjsip/pjproject源码环境配置 首先创建两个文件夹&#xff0c;分别是include、lib其中include放置ff…

【leetcode64-69二分查找、70-74栈、75-77堆】

二分查找[64-69] 时间复杂度O(log n)&#xff0c;要想到二分排序 35.搜索插入位置 class Solution:def searchInsert(self, nums: List[int], target: int) -> int:left 0right len(nums)-1while left < right: #左闭右闭mid (leftright)//2if nums[mid] < target…

【SpringBoot配置文件读取】无法读取yaml文件中文字符

1. yaml配置文件 注意要将该文件编码格式改为UTF-8 spring:application:name: 好好学习admin:name: 李斯age: 24books:- name: 数据结构desc: 数据书- name: 编译原理desc: 编译书2.配置实体类 Data设置get&#xff0c;set方法Component注册为BeanConfigurationProperties(p…

Android设备信息(DevInfo)

软件介绍 设备信息&#xff08;DevInfo&#xff09;一款评分非常不错的手机硬件及各种信息检测应用&#xff0c;安卓设备硬件检测工具。可以全面查看手机的各种信息、包括&#xff1a;Android系统版本的详细信息、芯片CPU处理器的详细信息、全球卫星定位、测试功能、硬件温度、…