matlab绘制中国南海地图(九段线小图)

matlab绘制中国南海地图(九段线小图)

网上关于怎么画南海九段线小图的文章不多,在此记录一下。

绘制南海图
首先要下载中国地图的shp文件,参见上一篇文章。

%-------------------中国地图-----------------
infoL=shapeinfo('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4l.shp');%中国省界线文件(含九段线)
infoP=shapeinfo('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4p.shp');%中国面文件
ChinaL=shaperead('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4l.shp');
ChinaP=shaperead('E:\4.Matlab\shp\全国省级、地市级、县市级行政区划shp\全国省级、地市级、县市级行政区划shp\bou2_4p.shp');
bou2_4lx=[ChinaL(:).X];bou2_4ly=[ChinaL(:).Y];
bou2_4px=[ChinaP(:).X];bou2_4py=[ChinaP(:).Y];

World = shaperead('E:\4.Matlab\shp\world map china line\world map china line.shp');
wx = [World(:).X];
wy = [World(:).Y];

%绘制中国地图
figure(1)
m_proj('miller','lon',[70,135],'lat',[15,55]);
m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4]);m_plot(wx,wy,'linewidth',1.2,'color',[0.4 0.4 0.4]);
m_grid('linestyle','none','xtick',[75:10:135],'ytick',[15:10:55],'fontsize',20);
%绘制南海九段线
h1=axes('Position',[0.69 0.119 0.127 0.25]);%创建坐标系时返回它的句柄
axes(h1);%将坐标系h1置为当前坐标系
set(gcf,'PaperPositionMode','auto')
m_proj('miller','lon',[106,122],'lat',[2,26]) %设置南海区域
m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4])%绘国界
m_grid('XTick',[],'YTick',[])%南海小图的坐标不显示

调整南海图的位置
有时候绘制的每个子图都需要南海小图,因此需要对南海小图的位置进行调整

figure(1)
subplot(2,5,6) 
m_proj('miller','lon',[70,135],'lat',[15,55]);
m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4]);m_plot(wx,wy,'linewidth',1.2,'color',[0.4 0.4 0.4]);
m_grid('linestyle','none','xtick',[75:10:135],'ytick',[15:10:55],'fontsize',20);
%调整子图位置
NN=6;H(NN) = subplot(2,5,NN);POS = get(H(NN),'pos');POS = POS + [-0.07 0.01 0.04 0.05];set(H(NN),'pos',POS)
m_grid('linestyle','none','xtick',[75:15:130],'ytick',[20:10:55],'fontsize',14);%设置子图的坐标刻度和字体大小
%绘制第6个子图的南海小图
h6=axes('Position',[0.1765 0.2005 0.07 0.06]);%小图的位置,[左下点的横坐标 左下点的纵坐标 横长 纵长]
axes(h6);set(gcf,'PaperPositionMode','auto')
m_proj('miller','lon',[106,122],'lat',[2,26]);m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4]);m_grid('XTick',[],'YTick',[]);

subplot(2,5,7) 
m_proj('miller','lon',[70,135],'lat',[15,55]);
m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4]);m_plot(wx,wy,'linewidth',1.2,'color',[0.4 0.4 0.4]);
m_grid('linestyle','none','xtick',[75:10:135],'ytick',[15:10:55],'fontsize',20);
%调整子图位置
NN=7;H(NN) = subplot(2,5,NN);POS = get(H(NN),'pos');POS = POS + [-0.055 0.01 0.04 0.05];set(H(NN),'pos',POS)
m_grid('linestyle','none','xtick',[75:15:130],'ytick',[20:10:55],'yticklabels',[],'fontsize',14);
%绘制第7个子图的南海小图
h7=axes('Position',[0.3545 0.2005 0.07 0.06]);axes(h7);set(gcf,'PaperPositionMode','auto')
m_proj('miller','lon',[106,122],'lat',[2,26]);m_plot(bou2_4lx,bou2_4ly,'linewidth',1.2,'color',[0.4 0.4 0.4]);m_grid('XTick',[],'YTick',[]);

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值