開始使用免費開始

以圖層方式建立圖表

現在你已經更熟悉 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()
編輯並執行程式碼