OD流向地圖的繪製——利用ArcGIS與Gephi方法
1 資料準備
一共有347個城市構成的矩陣,行代表從行標籤流出到列標籤,列代表從列標籤流入到行標籤,注意,這不是對稱矩陣
對於34個省級行政單元也是如此
收集整理城市、省的節點資料,節點必須要有ID 經緯度 標籤(也就是名稱),可以選擇性新增節點的屬性列作為權重指標並另存為Nodes.csv:(存成csv就好)
同時需要將矩陣轉換為邊表的形式
MATLAB程式碼如下:
clear all [data,text] = xlsread("H:\02Course\00DATA\表格\原始\原始資料\City-level data.xlsx"); [data1,text1] = xlsread("H:\02Course\00DATA\表格\citylinlat_347個城市.xlsx");%347個 count=length(data); name=string(text(2:count)); name=name'; out=[]; s=[]; t=[]; num=1; for i = 1:count for j=1:count s(num,1)=data1(i,1);%SourceID s(num,2)=data1(i,8);%Source lng s(num,3)=data1(i,9);%Source lat t(num,1)=data1(j,1);%TargetID t(num,2)=data1(j,8);%Target lng t(num,3)=data1(j,9);%Target lat out(num)=data(i,j);%From Source To Target Weight num=num+1; end end xlswrite('cityout.xlsx',s,1,'A2'); xlswrite('cityout.xlsx',t,1,'D2'); xlswrite('cityout.xlsx',out',1,'G2');
一共有120409條記錄,沒想到資料量比較大
轉為只用id表示邊的起始和終點的形式,首列首行自己填入即可,另存為Edges.csv:(csv格式即可)
省也是:
可以對流(邊)的數值為0的記錄進行剔除,這樣一方面減少資料冗餘,避免在軟體中資料量過大軟體卡死,另外是考慮到節點之間沒有聯絡的話可以不存在這一流
直接在excel中篩選即可
篩選後城市邊的記錄數為6704,比之前的12萬左右減少了很多
篩選後省的邊的記錄數為737,比1156也少了幾百條記錄
2 在Gephi中視覺化表達
安裝Gephi請參照:https://www.cnblogs.com/icydengyw/p/13962285.html
安裝GeoLayout和Map Of Countries 外掛
1 匯入電子表格,先匯入城市節點citynodes.csv,選擇節點表格
需要注意節點表格的列標籤需要為:
2 再匯入城市邊表格 cityedges.csv
注意邊表格最好處理為以下形式,即刪除其他的表述目標和源點的經緯度資料啥的:
注意圖的型別選擇混合型即可,這裡有些玄學,需要多嘗試emmm
調整格式,根據節點的幾個屬性分別設定節點的顏色,節點的大小尺寸,這個不能在ArcGIS中同時實現好像
然後邊的顏色也可以根據權重設定,也可以直接使用流出的節點的顏色
在預覽中:
匯出為pdf或者svg向量格式:
可以明顯看見是缺乏中國南海和臺灣的,因此還需要PS或者AI把地圖地圖加入進去
3 在ArcGIS中視覺化表達
使用ArcGIS中的 XYToLine工具
此工具介紹:https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/data-management-toolbox/xy-to-line.htm
GEODESIC:測地線,橢球體表面上兩點之間的最短連線
GREAT_CIRCLE: 大圓航線,通過兩航路點間的大圓圈線(該兩航路點與地心在同一平面)
RHUMB_LINE(loxodrome line): 等角航線:是地球表面上與經線相交成相同角度的曲線。在地球表面上除經線和緯線以外的等角航線,都是以極點為漸近點的螺旋曲線,在航海圖(採用墨卡託投影)上又表現為直線
NORMAL_SECTION:法截弧,A點的法線與B點確定的法截面與橢球相交的弧線
之後可以根據流線的權重選擇線的粗細尺寸(綠色)和漸變的顏色(粉紅色),由於線比較多,因此表現城市流線的表示效果都不是很好:
看一下省的流線效果,要稍微好一些:
4 附加
如果對於不同省份之間的流的情況想要視覺化表達,可以考慮直接使用Circos的線上製圖工具進行:
資料準備格式:http://mkweb.bcgsc.ca/tableviewer/samples/
可以自定義順序、顏色,注意節點數需要小於75個,不然就得下載Circos軟體來製圖
上傳資料:http://mkweb.bcgsc.ca/tableviewer/
本文中以省份為例進行展示,其中每個省都有流進本省和流出本省的比例條,這裡按照總體順序排列: