1. 程式人生 > 其它 >【782】tm_map相關使用技巧

【782】tm_map相關使用技巧

參考:tmap: get started!

參考:tmap | R語言中專門繪製地圖的工具包

參考:R語言學習記錄:tmap繪製地圖01

參考:R語言學習記錄:tmap繪製地圖02


tmap工具包的名稱是Thematic Maps的縮寫,是R中專門繪製地圖的工具包。該包語法與ggplot2包比較類似,都是通過符合+來進行圖層疊加。

data(World)可以匯入 World 對應的向量資料,可以直接用

下面程式碼:

  • tm_shape:類似於定義一個數據集
  • tm_polygons:就是對資料集內的某列進行專題輸出
tm_shape(World) +
    tm_polygons("HPI")

兩種顯示模式

  • tmap_mode("view")互動顯示,可以放大縮小的電子地圖
  • tmap_mode("plot")靜態顯示,是一幅圖片,類似專題圖

Base layers 基本圖層

tm_polygons Create a polygon layer (with borders)
tm_symbols Create a layer of symbols
tm_lines Create a layer of lines
tm_raster Create a raster layer
tm_text Create a layer of text labels
tm_basemap
Create a layer of basemap tiles
tm_tiles Create a layer of overlay tiles

分面 Facets

可以同時顯示多個地圖,可以設定同步放大縮小!

tmap_mode("view")
tmap_mode("plot")

tm_shape(World) +
     tm_polygons(c("HPI", "economy", "pop_est", "gdp_cap_est")) +
     tm_facets(sync = TRUE, ncol = 2)

通過使用tmap_arrange函式:(這個其實和拼圖一樣了)

  • tm1相當於一個地圖
  • tm2相當於一個地圖
  • 然後tmap_arrange將兩個地圖合併
tmap_mode("plot")
## tmap mode set to plotting

data(NLD_muni)
tm1 <- tm_shape(NLD_muni) + tm_polygons("population", convert2density = TRUE)
tm2 <- tm_shape(NLD_muni) + tm_bubbles(size = "population")

tmap_arrange(tm1, tm2)

地圖自定義分割邊界值,通過 breaks 來設定

tm_shape(World) + 
tm_fill("pop_est_dens", title = "World density map", breaks = c(0, 10, 20, 30, 40, 50, 100, 500, 1000, Inf)) + 
tm_borders()

總結:

1.對於向量資料,tm_polygons既繪製邊界又填充顏色。tm_fill只填充不邊界,tm_borders只邊界不填充。

2.可以用breaks引數設定中斷值 

id='name' 設定滑鼠懸停顯示的內容

tm_shape(World) +
  tm_fill("pop_est_dens",
          title = "World density map",
          breaks = c(0, 30, 60, 90, 120, 500, 1000, Inf),
          id = "name",
          popup.vars = c("Name" = "name",
                         "ISO3" = "iso_a3",
                         "Pop density" = "pop_est_dens"))+
  tm_borders()