開始使用免費開始

善用 ggplot2 的優勢

你已經看到,可以在 ggmap() 繪圖上疊加 geom_***() 圖層,並在每個圖層中明確指定資料與映射;但這樣有兩個明顯的缺點:之後每個圖層都必須重複指定資料與映射,而且無法使用分面(facetting)。

所幸,ggmap() 提供了化解之道:base_layer 參數。你可以把一個一般的 ggplot() 呼叫傳給 base_layer,在那裡為所有圖層設定預設的資料與映射。

例如,原本的繪圖:

ggmap(corvallis_map) +
  geom_point(data = sales, aes(lon, lat))

也可以改成:

ggmap(corvallis_map, 
    base_layer = ggplot(sales, aes(lon, lat))) +
  geom_point()

把 aes(x, y) 與 data 從最初的 geom_point() 轉移到 ggmap() 呼叫中的 ggplot(),你就能用一般 ggplot2 的方式加入分面或額外圖層。

來試試看吧。

本練習屬於課程

在 R 視覺化地理空間資料

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Use base_layer argument to ggmap() to specify data and x, y mappings
ggmap(corvallis_map_bw, ___) +
  geom_point(data = sales, aes(lon, lat, color = year_built))
編輯並執行程式碼