開始之前需要准備好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