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