matlab绘制世界地图(含国界)、中国地图(含省界),可下载m_map和shp文件

matlab绘制世界地图(含国界)、中国地图(含省界),可下载m_map和shp文件

本人习惯用matlab绘制图像,matlab本身自带的mapping绘制世界地图的函数不是很好用,相比之下,下载m_map安装包进行绘图更加方便,故将一些安装包和代码记录如下,也方便有需要的人查看,如果对你有帮助的话,请点一个赞哟~

1.m_map安装包下载和官方网址

(1)m_map官方网址

m_map的官方网址是 https://www.eoas.ubc.ca/~rich/map.html#examples,里面涉及的绘图命令很全面,如果想要画什么图,但不知道命令,可以去官网找有对应特征的图,查看相应命令。

(2)m_map安装包

安装包下载网盘链接:https://pan.baidu.com/s/1wbfwQ8tsDShhdzuseVmINw
提取码:3j6i

成功下载m_map安装包后,需要将安装包导入matlab中,步骤如下:

  • 复制m_map安装包 ->>找到某盘下的Program Files文件夹(一般是C盘)->>找到其中的MATLAB文件夹->>找到R2016a文件夹(不同matlab版本对应的文件夹命名稍有区别,比如R2017b等)->>找到其下的toolbox文件夹->>将m_map文件夹粘贴到toolbox文件夹中

  • 打开matlab,在菜单栏的主页中找到“设置路径”->>点击设置路径,弹出选项框后,点击“添加文件夹”->>找到toolbox文件夹下的m_map文件夹,选择此文件夹->>这时候会看到弹出框的matlab搜索路径中出现了m_map这一个路径->>点击保存,然后关闭->>在matlab命令框中输入 help m_map,如果出来一长串m_map的解释文件,而非报错,则说明m_map安装成功~~

    图1 安装m_map文件夹
    在这里插入图片描述 图2 设置路径
    在这里插入图片描述

2.绘制世界地图(包含国界和不含国界)

(1)不包含国界

代码如下:
figure(1)
[Lon1,Lat1]=meshgrid(mmrbc_BCC_ESM1_lon,mmrbc_BCC_ESM1_lat);%前面变量的经纬度
m_proj('miller','lat',[-80 80]);%不写lon的时候,大西洋位于图像中间;写lon的时候,太平洋位于图像中间
m_pcolor(Lon1,Lat1,bc_BCC_ESM1');
shading interp;
colormap(Colormap_white2blue2red20);%自己定义的colormap
hh = colorbar('horiz');
hh.Ticks = [0:0.5:5];%给colorbar划分刻度区间
xlabel(colorbar('horiz'),'\mug/m^{2}','Fontsize',18);%将colorbar横过来
caxis([0 5]);
title('BCC-ESM1 Surface BC_1950-2014','fontsize',20,'interpreter','none');
m_coast('linewidth',1.5,'color',[.4 .4 .4]);%绘制海岸线
m_grid('linestyle','none');

绘制的图像(colorbar的文字说明和上面代码稍有不同)
在这里插入图片描述

(2)包含国界
世界国界链接: https://pan.baidu.com/s/1fOLOYCiRfcydt11itZMK6A
提取码:nfkl

代码如下:
World = shaperead('E:\4.Matlab\shp\world map china line\world map china line.shp');
wx = [World(:).X];wy = [World(:).Y];%读取世界地图的shp文件

figure(1)
[Lon1,Lat1]=meshgrid(mmrbc_BCC_ESM1_lon,mmrbc_BCC_ESM1_lat);
m_proj('miller','lat',[-80 80]);
m_pcolor(Lon1,Lat1,conbc_BCC_ESM1');%绘制conbc_BCC_ESM1变量的填色图
hold on;
m_plot(wx,wy,'k','linewidth',1.5,'color',[0 0 0]);%绘制国界
shading interp;
colormap(Colormap_white2blue2red20);%自己定义的colormap
m_grid('linestyle','none');
title('BCC-ESM1_BC','fontsize',20,'interpreter','none');
caxis([0 50]);
hh = colorbar;
hh.Ticks = [0:10:50];
ylabel(colorbar,'\mug/m^{3}','Fontsize',18);%对colorbar说明

绘制的图像(包含国界)
在这里插入图片描述

3.绘制中国地图(包含省界)

中国省界链接:https://pan.baidu.com/s/1fr4wGyLwJ__7v0ztmBk93g
提取码:7vdd

代码如下:
%中国省界线文件(含九段线)
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];

figure(1)
m_proj('miller','lon',[70,140],'lat',[0,60]);
m_pcolor(Lon,Lat,A1);
hold on;
m_plot(bou2_4lx,bou2_4ly,'k','linewidth',1.5);%绘制中国省界
hold on;
m_plot(wx,wy,'k','linewidth',1.5,'color',[0 0 0]);%绘制中国以外的国家,有国界
shading interp;
colormap(CM_bl2ye2re(2:end-1,:));%自己定义的colormap
m_grid('linestyle','none');
%m_coast('linewidth',1.5,'color',[.4 .4 .4]);%绘制中国以外的国家,没有国界
title('PM2.5_China_2001','fontsize',15,'interpreter','none');
axes('position',[.7,.12,.2,.80]);%设置colorbar的位置
axis off
caxis([0 120]);
colorbar('ticks',[0:20:120]);

绘制的图像(包含省界、国界)
在这里插入图片描述
未经允许不得转载,如果对你有帮助的话,点个赞吧~~

  • 110
    点赞
  • 301
    收藏
    觉得还不错? 一键收藏
  • 41
    评论
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值