matlab利用m_map工具包画中国地图及散点云图
开始之前需要准备好malab,中国地图shp文件,m_map工具包。
中国地图shp文件可以在下面的链接中下载:
https://gadm.org/download_country_v3.html
本文借鉴了下面链接中教程,该方法为matlab自带的画图工具包绘制方法,在我电脑上geoshow命令运行时间特别长,不知道为什么,感兴趣的同学可以试试:
https://my.oschina.net/chengwei426/blog/674280
利用m_map绘制中国地图,代码如下:
close all, clear all, clc, dbstop if error fpni='C:\Users\zzl\Desktop\python\gadm36_CHN_shp\gadm36_CHN_1.shp';%中国地图shp文件所在路径 China=shaperead(fpni); boux=[China(:).X];bouy=[China(:).Y];%分别是获取经度X信息和纬度Y信息 set(gcf,'position',[0 0 1440 780]);%设置图形窗口位置和大小 m_proj('Mercator','lon',[103 121],'lat',[19 31]);%设置投影方式为:墨卡托,地图显示范围 m_plot(boux,bouy,'k');%最关键的一句,绘制地图 %下面这句设置图形横纵坐标为经纬度格式 m_grid('linestyle','none','linewidth',2,'tickdir','out','xaxisloc','bottom','yaxisloc','left','fontsize',12);
至此,地图绘制完毕。下面是在上面所绘制地图的基础上,根据经纬度坐标绘制散点云图,假设有三列数据,如下图所示
其中第1列为经度,第2列为纬度,第3列为对应点的值(可以是人口,可以是海拔高度...)。
接着上面的代码,散点图代码如下:
hold on; load corrcoef.mat; %加载散点数据 lon=coce(:,1);lat=coce(:,2);dataco=coce(:,3); m_scatter(lon,lat,80, dataco,'filled', 'MarkerFaceColor', 'flat', 'MarkerEdgeColor', 'w','linewi',1) ;%画实心点图 % m_scatter(lon,lat,50, dataco, 'MarkerFaceColor', w','linewi',2) ;%画空心点图 contourcmap( 'jet', [-1:0.1:1], 'colorbar', 'on','location', 'vertical', 'fontsize', 13);%显示图例 title('***', 'Rotation', 0, 'FontSize', 14);%显示图标题
图形如下:
至此,本文目的就完成了,本人处理数据基本是靠matlab,但是用它画图也是第一次,之前一直都是在用sufer绘制,主要问题是调整图形较为麻烦,并且当绘制图形太多时,比较繁琐,且容易出错,因此决定用matlab绘图,整整花了两天的时间才从零基础到绘制出上面的图形。下面是m_map工具包的一些基本实例,特此转载,链接如下:
https://www.cnblogs.com/ruo-li-suo-yi/p/7663498.html