Matlab——m_map指南
Posted 箬笠蓑衣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab——m_map指南相关的知识,希望对你有一定的参考价值。
3、海岸线和深度测量
3.1.1 海岸线选项
m_coast(\'line\', ...optional line arguments );
m_coast(\'line\', ...optional line arguments );
m_map 的海岸线数据可以使用m_coast 获得 ,此处的参数选项都是指定线的属性的一些标准选项例如线条样式,线宽,颜色等。
m_coast(\'patch\', ...optional patch arguments );
此处的参数选项都是指定填充的属性的一些标准属性
m_coast(\'patch\',[.7 .7 .7],\'edgecolor\',\'g\');
绘制灰色填充,轮廓为绿色,当绘制了填充时,湖泊和内陆海洋给轴背景色。
m_coast(\'speckle\', ....optional m_hatch arguments);
许多老的海洋地图使用斑点土地边界,这种黑白相间的地图看起来非常漂亮
3.1.2
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_coast(\'linewidth\',2,\'color\',\'r\');;%画出海岸线
m_grid;%添加格网
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_coast(\'patch\',[1 1 0],\'edgecolor\',\'r\');;;%画出海岸线
m_grid;%添加格网
3.2.1 地形水深选项
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_coast(\'patch\',[1 1 0],\'edgecolor\',\'r\');;;%画出海岸线
m_elev;%添加地形水深数据
m_grid;%添加格网
3.2.2
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_elev(\'contourf\',15);%轮廓填充
m_coast;%画出海岸线
colorbar
3.2.3
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_elev(\'contour\',15,\'edgecolor\',\'b\');%蓝色填充
3.2.3
clear all
m_proj(\'Stereographic\');%确定投影方式和绘图界线
m_elev(\'contourf\',15,\'edgecolor\',\'b\');
colorbar
m_grid;%添加格网
[Z,LONG,LAT]=m_elev([-20 20 -30 30]);%返回经度,纬度,高度值
4、个性化坐标轴
4.1网格线与标签
clear all
m_proj(\'Lambert\');
m_coast;
m_grid;%添加网格
m_ungrid;%去除网格
4.1.2
clear all
m_proj(\'Lambert\');
m_coast;
m_grid(\'xtick\',10,\'tickdir\',\'out\',\'yaxislocation\',\'right\',\'fontsize\',7);%grid设置
\'box\',( \'on\' | \'off\' | \'fancy\' )
这个选项用来指定是否需要一个外轮廓。有三种外轮廓可供选择, on 默认值,就是简单的一条线,有两中 fancy 轮廓线可供使用,如果 tickdir 属性值是 in,会有一个黑白相间的条纹 ,如果 tickdir 设置为 out,会画出一个复杂的条纹,
\'xtick\',( num | [value1 value2 ...])
这条命令指定经度格网的位置和数值,如果只是给定了一个数,画出的格网线是近似等距的(这个数值是一个约数,因为 m_grid 总是想让间隔看起来更加好看),当使用位置向量可以指定准确的位置,, ytick 与此类似。 (平分几份)
\'xticklabels\',[label1;label2 ...]
指定标注的值,可以是数值,也可以使字符串, yticklabels 与此类似。
\'xlabeldir\', ( \'middle\' | \'end\' )
经度标签要么在格网线短点中间的位置(在格网线正交的位置),要么在这些格网线端点向外延伸位置, ylabeldir 与此类似。(默认 Middle);
\'ticklen\',value
指定标签的长度,类似 plot 中的 width;
\'tickdir\',( \'in\' | \'out\' )
指定标记实在内部还是外部,如果 box 被设置为 fancy,它有用来指定 fancy 的样式。
\'tickstyle\',( \'dd\' | \'dm\' )
指定坐标轴标注是用度的形式还是度分秒的形式,默认为度分秒的形式。
\'color\',colorspec
\'linewidth\', value
\'linestyle\', ( linespec | \'none\' )
\'fontsize\',value
\'fontname\',name
指定线或者文件的一些属性
\'XaxisLocation\',( \'bottom\' | \'middle\' | \'top\' )
指定在哪里做 X 轴,是在最底部还是最顶部还是中间。
\'YaxisLocation\',( \'left\' | \'middle\' | \'right\' )
指定 Y 轴是在最左边,中间,还是在最右面
clear all
m_proj(\'Lambert\');
m_coast;
m_grid(\'box\',\'fancy\',\'xtick\',10,\'ytick\',8,\'xticklabels\',[\'a\'; \'b\';\'c\'],...
\'ylabeldir\', \'end\', \'tickdir\',\'in\',\'yaxislocation\',\'left\',\'fontsize\',10);更改标签,改变显示情况
4.2标题和轴标记
用 title(„‟)和 xlabel,ylabel 可以为地图添加标题和坐标轴说明
title(\'北美兰勃脱\',\'fontsize\',15)
xlabel(\'longitude\');
ylabel(\'latitude\')
4.3 图例
可以用 m_legend 给一副地图添加图例,当前只有一部分图例的功能可以使用,通过使
用鼠标可以拖动或者删除图例。
4.4 比例尺
m_ruler位置使用规范化坐标, {0,1}之间,所以你可以注记调整它在地图中的位置,最好在调用了 m_grid 之后调用他,因为 m_grid重置了初始化值。
clear all
m_proj(\'Lambert\');
m_coast;
m_grid(\'box\',\'fancy\',\'xtick\',10,\'ytick\',8,\'xticklabels\',[\'a\'; \'b\';\'c\'],...
\'ylabeldir\', \'end\', \'tickdir\',\'in\',\'yaxislocation\',\'left\',\'fontsize\',10);
title(\'北美兰勃脱\',\'fontsize\',15)
xlabel(\'longitude\');
ylabel(\'latitude\')
m_ruler([0.1 0.3],1);
5 添加自己的数据
5.1.1 画线、文本、箭头、填充、等高线等
m_plot(LONG,LAT,...line properties) % draw a line on a map (erase current plot)
m_line(LONG,LAT,...line properties) % draw a line on a map
m_quiver(LONG,LAT,U,V,S) % A quiver plot
m_text(LONG,LAT,\'string\') % Text
m_patch(LONG,LAT,..patch properties) % Patches.
m_patch出现错误时,试着使用命令 flipud 或者 fliplr 来扭转点的顺序。
以经纬度方式组织的格网数据也可以 contoured:
m_contour(LONG,LAT,VALUES)
m_contourf(LONG,LAT,VALUES)
这个功能也可以返回图形对象句柄。
[cs,h]=m_contour(LONG,LAT,VALUES)
clabel(cs,h,\'fontsize\',6);
5.1.2
将经纬度坐标转换成投影坐标
[X,Y]=m_ll2xy(LONG,LAT, ...optional clipping arguments )
5.1.3
将投影坐标转换成经纬度坐标
[LONG,LAT]=m_xy2ll(X,Y)
5.1.4从图像中移除数据
clear all
m_proj(\'lambert\',\'long\',[-160 -40],\'lat\',[30 80]);
m_coast;
m_grid;
m_range_ring(-123,49,[1e3:1e3:10e3],\'color\',\'r\');
m_ungrid range_ring%将其移除
m_range_ring(-123,49,[200:200:2000],\'color\',\'r\');%重新画
没 1000 公里画一个圆, 但我对此不满意,想要仅仅使用 200 千米的增量重新画,我可以移除 m_range_ring 然后重新画:
m_angthing 都可以通过调用
m_ungrid angthing 来将其移除。
以上是关于Matlab——m_map指南的主要内容,如果未能解决你的问题,请参考以下文章