码迷,mamicode.com
首页 > 其他好文 > 详细

matlab利用m_map工具包画中国地图及散点云图

时间:2019-09-08 10:03:27      阅读:1173      评论:0      收藏:0      [点我收藏+]

标签:tac   red   out   设置图   down   nes   shp   图片   width   

开始之前需要准备好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

 

matlab利用m_map工具包画中国地图及散点云图

标签:tac   red   out   设置图   down   nes   shp   图片   width   

原文地址:https://www.cnblogs.com/righdflf/p/11484189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!