Spatial Visualization with tmap

tmap的创建克服了基本图形和ggmap的一些限制。vignette函数可以访问tmap的简明介绍。

  • tmap简介
  • 并排地图
  • 构建底图
  • 其他功能

tmap 简介

1
2
library(tmap)
vignette("tmap-nutshell")

vignette(“tmap-nutshell”):返回tmap的简明介绍。

并排地图

读取数据

1
2
library(rgdal)
readOGR("data","london_sport")

快速专题绘图

1
2
qtm(shp = lnd, fill = "Partic_Per", fill.palette = "-Blues")
qtm(shp = lnd, fill = "Pop_2001", fill.palette = "-Blues")
Figure11-Sports Participation Figure12-population

1.第一个参数:矢量文件名称;fill:填充变量的名称;fill.palette:调色板颜色。
2.第二幅图不同的原因是,”Pop_2001”为因子型变量,只有数值型变量才有区间。

因子转数值

1
2
sapply(lnd@data,class)
lnd$Pop_2001 <- as.numeric(as.character(lnd$Pop_2001))

先转换为字符型变量,再转化为数值型变量。

绘图

1
qtm(shp = lnd, fill = c("Partic_Per", "Pop_2001"), fill.palette = "Blues", ncol = 2)

fill:两个填充变量;对应ncol = 2
结果如图13所示

Figure13

tm_facets

1
2
3
tm_shape(lnd) +
tm_fill("Pop_2001", thres.poly = 0) +
tm_facets("name", free.coords = TRUE, drop.units = TRUE)

所有 qtm 函数创建的地图均可以通过 tm_shape + tm_fill或别的 tm_ 类型的函数创建。

Figure14-Make maps use tm_facets

构建底图

采用tmaptools安装包的read_osm函数

转换坐标系

1
lnd_wgs = spTransform(lnd, CRS("+init=epsg:4326"))

OSM下载图像

1
osm_tiles = tmaptools::read_osm(bbox(lnd_wgs))

tmaptools::read_osm省去了步骤 library(tmaptools)
Warning: Current projection unknown. Long lat coordinates (wgs84) assumed.命令窗口的这一警告不碍事,忽略即可。

绘制底图

1
2
3
tm_shape(osm_tiles) + tm_raster() + tm_shape(lnd_wgs) +
tm_fill("Pop_2001", fill.title = "Population, 2001", scale = 0.8, alpha = 0.5) +
tm_layout(legend.position = c(0.82,0.02))
Figure15-London's population in 2001

其他功能

1
?tmap

在tmap中还有许多其他直观和强大的功能,可以通过 ?tmap 自己探索。

-------------文章结束啦 ฅ●ω●ฅ 感谢您的阅读-------------