Shiny app showing proportions of older adults across districts in Taiwan
- 本次地圖捨棄
ggplot2
的靜態表現,改用leaflet
呈現互動式地圖。 - 使用者不再需要選定縣市別而可綜觀全臺灣資料。
- 上次使用
ggplot2::fortify
將sp物件(SpatialPolygonsDataFrame)轉為data frame,再base::merge
鄉鎮市區邊界與老化資料;而本次則直接使用sp::merge
將老化資料的data frame融合進sp物件。 - 語法主要參考Leaflet for R - Choropleths,併以
shiny
套件呈現。 - 雖然互動性提高了一些,但代價是圖形呈現的速度變慢了,目前還沒有找到方法加快、或是讓使用者知道執行進度。
- 如果加上進度條,它會瞬間跑完,但地圖還是要至少十數秒後才會被呈現(issue #1)。
- 網路上有一些關於
leaflet
畫大型地圖的表現討論:
執行本程式的方法有三:
-
造訪臺灣各鄉鎮市區老化情形 @ shinyapps.io。此為shinyapps.io提供之免費解決方案。
-
造訪臺灣各鄉鎮市區老化情形 @ Google Compute Engine。此為Google Cloud Platform提供的免費試用額度(該額度用完時我會把這個連結關掉)。順帶一題,我寫了一篇如何在GCP上部署Shiny Server的步驟教學,以及部署時會用到的shell script,以整理部署過程中遇到的困難及解決方法。
-
有安裝R軟體者,可直接在本地端執行:
# 第一次使用需安裝套件 install.packages(c("shiny", "magrittr", "maptools", "leaflet", "rgeos")) # 套件安裝完成後 shiny::runGitHub("OldPopulationProportions", "corytu")
- 內政部國土測繪中心 [2017] [鄉鎮市區界線(TWD97經緯度)]
- 內政部戶政司 [2017] [各村(里)戶籍人口統計月報表]
- 此開放資料依政府資料開放授權條款(Open Government Data License)進行公眾釋出,使用者於遵守本條款各項規定之前提下,得利用之。
- 政府資料開放授權條款:https://data.gov.tw/license