Using R to make a map with election attributes
互動式地圖製作步驟(R語法檔請見連結):
step 1. Search for the .shp file.
.shp file: 有行政疆界形狀的檔案,shape file (關於GIS圖資檔案,請見說明)
Taiwan county map 我國各直轄市以及縣(市)行政區域界線
目前有些R package有包括全球地圖、各國的地圖,大家也可以找找看。
像是我們可以用leaflet()%>%addTiles() 的指令叫出世界地圖。
step 2. What do you want to see on this map? Find the dataset for your attributes(地圖所呈現的差異).
I want to see if DPP won more votes in Southern counties than the KMT. (我想看國民黨2018年縣市長選舉在各縣市得票率、當選者名字、當選者政黨別)
大家可以找不同的資料來玩玩看!看看不同縣市的各種attributes的差異,例如:
1. 中選會資料庫網站 Central Election Commission (e.g. 得票率)
2. 主計處 縣市重要統計指標 (e.g. 人口密度、社會福利支出)
step 3. Check if the datasets have a common variable to merge.
我想要把得票數的資料和縣市的shp file合併起來。
在合併之前,我得先確認一下是否有共同的變數名稱。
對gis並不熟悉的同學,常常會覺得shp file不容易閱讀。
用R,我們可以用str(shpfile)的指令來看到底這個shp file有甚麼變數、代表行政地區的變數又是怎麼寫。
例如,我需要確認以下這兩點
a. 縣市名稱的寫法是否相同 ex: 台北or 台北市
b. 變數名稱是否相同 ex: countyname or 縣市名稱
step 4. merge datasets 合併
補充說明:
R有幾個可以用來做地圖的packages:
1) tmap
這篇教學文詳細說明了tmap在分組(style)的時候的差異
例如,我們想要產生一張地圖,並顯示出各國家戶所得的差異(又稱貧富差距,這是一種attribute特徵/屬性)。
我們要設定style指令來分類組別數。常見的style有kmeans等,讓R幫我們去按照貧富差距大小去著色。
或是我們也可以固定分組的數值,譬如我們按照世界銀行對於貧困人口的定義去劃分,那就有一個固定的數值,又稱cutpoints。
需要注意的是,Attributes的總數最好控制在5到6組。當Attributes分組的組數太多,會讓觀眾/讀者難以理解這張地圖想表達甚麼。
2) sf: 比較陽春,詳細操作可見這篇教學。
3) leaflet: 可以出現pop-up information
畫heat map,容易遇到的問題
1. 你的Attributes並沒有所有省份的數值: 例如我用東亞民主調查的數據來展現不同省份民眾對政府的看法。但是東亞民主調查是抽樣調查,而非普查,所以很自然的,我並沒有全部省分的數值。最簡單的方式是把這些沒有抽到的省份變成NA。
2. 你的.shp file和Attributes的省份名稱不一致: 由於要把兩種檔案合併在一起,要記得把共同的變數名稱中的value弄成一致。
如果懶得自己做選舉地圖,其實政治大學的黃紀教授有一個地緣資料庫,裡面就有整合各種選舉的資料和地圖。
Comments
Post a Comment