這裡介紹如何使用 R 的 ggmap 套件來繪製地圖,並且把自己的資料依照經緯度畫在地圖上。
ggmap
套件是一個專門用來繪製地圖的 R 套件,它可以自動從 Google 地圖、OpenStreetMap、Stamen Maps 或 CloudMade Maps 網站上下載指定位置的地圖,讓使用者使用 ggplot
的語法來結合地圖與資料並進行繪製。
除了基本的資料點標示之外,使用者還可以透過 ggmap
的所提供的函數來使用 Google 地圖 API 的各種功能,非常方便。
ggmap
套件中的 get_map
函數可以讓我們在 R 的環境中直接下載地圖,接著再呼叫 ggmap
函數就可以畫出來。若要繪製台灣的地圖,可以執行:
library(ggmap) library(mapproj) map <- get_map(location = 'Taiwan', zoom = 7) ggmap(map)
地圖的位置是透過 location
參數來指定,直接輸入地名即可,而 zoom
則是控制地圖的大小。這是畫出來的圖:
get_map
有相當多的參數可以使用,language
可以設定地圖上文字標示的語言:
map <- get_map(location = 'Taiwan', zoom = 7, language = "zh-TW") ggmap(map)
這是畫出來的圖:
location
參數也可以接受經緯度,需要畫出比較精確的位置時,可以這樣使用:
map <- get_map(location = c(lon = 120.233937, lat = 22.993013), zoom = 10, language = "zh-TW") ggmap(map)
這是畫出來的圖:
maptype
參數可以指定地圖的類型(預設是 terrain
):
map <- get_map(location = c(lon = 120.233937, lat = 22.993013), zoom = 10, language = "zh-TW", maptype = "roadmap") ggmap(map)
以下是幾種常見的地圖類型:
這種黑白的地圖在顯示資料時很好用。
ggmap
的 darken
這個參數可以讓地圖變暗(或是變亮):
map <- get_map(location = c(lon = 120.233937, lat = 22.993013), zoom = 10, language = "zh-TW") ggmap(map, darken = 0.5)
這是畫出來的圖:
若要讓地圖變亮,可以執行:
map <- get_map(location = c(lon = 120.233937, lat = 22.993013), zoom = 10, language = "zh-TW") ggmap(map, darken = c(0.5, "white"))
這是畫出來的圖:
darken
基本上就是在地圖上多加一層圖層,透過指定透明度與顏色,就可以做出很多變化。