摘要:看了知乎上大部分關於如何用excel做數據地圖的回答,感覺最費勁的地方都在地圖素材上,有用多邊形描出來的(有點兒累),有推薦excel插件的(不喜歡依賴插件或軟體包),這樣多多少少缺少了彈性(當然你也可以網上找一個人家做好的)。我個人比較喜歡從零DIY,學會了整套方法,以後遇到任何問題都可以解決。
正好有朋友在我的一些回答中問過我,我的那些熱感地圖怎麼做出來的。借這個機會,我毅然決定,專寫一篇文章來說說我的數據地圖是怎麼畫的。
很簡單,按照我的方法,六步你就可以畫出自己的熱感地圖,不需要GIS軟體,各種地圖都適用。
前提:你要有Excel這個軟體啊(否則搞毛),還要能上網啊(能看到這回答說明正在上網吧?)
第一步:需要一張普通的地圖圖片
這個很簡單,網上到處都有。中國的省級地圖,地級市地圖,甚至縣級地圖都可以找到。這裡兩個小要求:1)儘量找張乾淨的圖,乾淨指的是地圖的邊界清晰;2)svg格式的圖(Scalable Vector Graphics)- 別慌,推薦你個下載svg格式地圖模板的好去處: Wikimedia Commons
在這個網站搜索China provinces,可以得到下面這些圖(上百張),第一張圖就很符合我們的要求:
第二步:打開下載的svg圖。這裡推薦個免費開源的軟體:Inkscape。用這個軟體打開svg的地圖,然後另存為Enhanced Meta File(emf)格式的文件。
第三步:用excel導入emf的文件,然後ungroup這個地圖變成freeform的圖形,如下圖。
這樣我們就得到了excel裡面的地圖素材。
第四步:每個省現在對應的名字都沒有,我們需要重新命名。簡單的方法:滑鼠點擊選一個省,在左上角公式旁邊的文本框裡輸入省的名字,如下圖:
第五步:在excel裡另建一個worksheet,按照下圖來設計數據版面:
更新:F列每個顏色的單元格漏寫了對應的命名,比如白色的單元格,將其命名為對應的J列的值(classpro0)
漸變顏色可以自己選擇,目前這個例子是從0到5六種類別(顏色),根據你的研究需要(比如各省人均收入水平你按照高低分了10類,那就10種),隨便改多少種都可以,唯一注意的就是命名的區域要跟著變。再囉嗦一下:根據你自己的分類標準,篩選你的數據,將篩選後的分類結果(比如6種 0-5)對應到之前提到的類別中,這樣也就對應好了顏色。
第六步:這些都做完了,在地圖那頁worksheet裡面加個按鈕,把下面這段VBA程序copy進去:
For i = 2 To 32 '這裡是省的數量,2代表的是後面連接的數據表起始位是第二行,可以根據你自己的設計更改
Range("actRegProvince").Value = Range("Data_Province!D" & i).Value '按順序選取數據表中省份
ActiveSheet.Shapes(Range("actRegProvince").Value).Select '激活對應的省份地圖
Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCodeProvince")).Interior.Color '將數據表中省份對應的顏色類別賦值給對應的省份地圖Next i
補充說明:Data_Province!D中Data_Province是數據表(worksheet)的名字,D指的是
補充說明:Data_Province!D中Data_Province是數據表(worksheet)的名字,D指的是省份名字所在的列(見上面那張截圖)。根據自己的需要可以改成你喜歡的名字或位置。
第七步:這步不算了啊!就是六步~
點擊按鈕,享受成果,不謝!
把剛才的地圖換成紫色漸變色,效果如下:
我過去的研究用過的一些樣圖(ps: 數據原因,有些圖未包含臺灣):
地級市級別方言地圖
地級市層面經濟集群圖
神經網絡算法分類中國地級市
同樣方法製作縣級地圖
本文經【錢糧胡同】授權數據分析網發布,轉載請聯繫原作者
專欄連結:https://zhuanlan.zhihu.com/p/20756711
數據能力,從點【分享、收藏、點讚、在看】開始 ↓↓