開始使用免費開始

等值區圖(Choropleth map)

現在你已經了解如何繪製多邊形了,接著把這些多邊形放到地圖上吧。記住,你要把 ggplot() 呼叫換成 ggmap(),原本的 ggplot() 呼叫放到 base_layer() 參數裡,然後再照常加入多邊形圖層:

ggmap(corvallis_map_bw,
      base_layer = ggplot(ward_sales,
                          aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))

現在就到主控台試試看!

呃哦,結果看起來不太對。選區 1、3 和 8 呈現鋸齒狀而且不正確。發生了什麼事?有部分選區邊界超出了地圖的邊界。由於 ggmap() 的預設設定,任何超出地圖的資料在繪圖前都會被丟棄,所以有些多邊形邊界被移除了,剩下的點連起來就會形成錯誤的形狀。

別擔心,有解法:ggmap() 提供了一些參數可以控制這個行為。將 extent = "normal" 搭配 maprange = FALSE,即可強制以資料範圍而不是地圖範圍來決定繪圖邊界。

本練習屬於課程

在 R 視覺化地理空間資料

檢視課程

動手互動練習

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

# Fix the polygon cropping
ggmap(corvallis_map_bw, 
      base_layer = ggplot(ward_sales, aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))
編輯並執行程式碼