Matlab——m_map指南(2)


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 來將其移除。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM