tmap是繪製主題地圖的套件之一,與sf格式的圖資搭配,透過公式化的繪圖指令,便能繪製出主題地圖。
雖然繪製統計地圖(像是點子圖或面量圖)時,不如cartography函數方便直觀。但tmap除了能畫出靜態地圖之外,透過tmap_mode()函數設定為“view”,便能變成動態的互動式地圖。並在資料疊圖上更為方便。
讀取資料與初步整理
library(sf);library(tmap)
setwd('D:/SA_Book/Lab_Data_Ch2')
temple=st_read(dsn='Taiwan_temple.shp')
town=st_read(dsn='Taiwan_town.shp')
county=st_read(dsn='Taiwan_county.shp')
tmap_mode('view') #切換為互動式(靜態則將參數設為'plot')
面資料與點分布
請問台灣媽祖廟宇的空間分布狀況為何?
mazhou=subset(temple,God=='媽祖')
tm_shape(county)+tm_polygons(col='lightgreen')+
tm_shape(mazhou)+tm_symbols(0.1,'red')
分級符號圖
各縣市間媽祖廟宇數量上的差異?
county$mazhou_count=lengths(st_contains(county,mazhou))
center=st_centroid(county)
tm_shape(county)+tm_polygons(col='lightgreen')+
tm_shape(center)+tm_symbols('mazhou_count','red',scale = 3)
面量圖
各鄉鎮媽祖廟宇的分布密度?
town$mazhou_count=lengths(st_contains(town,mazhou))
town$area=as.numeric(st_area(town))
town$mazhou_density=town$mazhou_count/town$area*10^6
tm_shape(town)+tm_polygons('mazhou_density')
tm_shape(town)+tm_polygons('mazhou_density',n=7,style="quantile",palette ="BuGn")
多圖層疊圖
tm_shape(town)+tm_polygons('mazhou_density',n=7,style="quantile",palette ="BuGn")+
tm_shape(county)+tm_borders("black")+
tm_shape(mazhou)+tm_symbols(0.02,'red')