開始之前需要準備好malab,中國地圖shp文件,m_map工具包。 中國地圖shp文件可以在下麵的鏈接中下載: https://gadm.org/download_country_v3.html 本文藉鑒了下麵鏈接中教程,該方法為matlab自帶的畫圖工具包繪製方法,在我電腦上geoshow命令運 ...
開始之前需要準備好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