以圖層方式建立圖表
現在你已經更熟悉 tmap(),讓我們把先前的人口地圖用圖層逐步堆疊,並做一些微調來改進。先從定義資料的 tm_shape() 圖層開始,接著加入 tm_fill() 圖層,利用變數 population 為多邊形上色:
tm_shape(countries_spdf) +
tm_fill(col = "population")
這張圖最大的問題大概是色階資訊量不足:第一個顏色(最淡的黃色)涵蓋了所有人口少於 2 億的國家!由於色階與 tm_fill() 圖層綁定,因此要在這個呼叫中調整。你會在第 3 章更深入學到色彩設定,不過現在先知道 style 參數用來控制如何選擇分組區間(breaks)。
你的圖也需要國界外框。你可以加入 tm_borders() 圖層,但別讓它太搶眼。也許棕色會不錯。
當你切換作圖類型時,使用空間物件的好處就很明顯了。讓我們也試試氣泡圖,讓氣泡大小對應人口。如果你用的是 ggplot2,這通常需要大量重塑資料;但在 tmap 中,你只要替換一個圖層就行了。
本練習屬於課程
在 R 視覺化地理空間資料
練習說明
- 在
tm_fill()中加入style = "quantile"。此設定會根據每個區間含有相同觀測數來決定色階分點。 - 在同一張圖上,新增
tm_borders()圖層並設定col = "burlywood4"。 - 建立一張與第一張相同的新圖,但把
tm_fill()換成tm_bubbles(),並將size對應到人口。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
library(sp)
library(tmap)
# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
tm_fill(col = "population") +
# Add a tm_borders() layer
# New plot, with tm_bubbles() instead of tm_fill()