分层构建绘图
现在您已经更了解 tmap(),让我们把之前的人口地图按图层逐步构建起来,并做一些小调整来改进效果。先用一个 tm_shape() 图层指定要使用的数据,然后添加一个 tm_fill() 图层,用变量 population 给多边形填充颜色:
tm_shape(countries_spdf) +
tm_fill(col = "population")
生成图形的最大问题可能是配色刻度的信息量不足:第一个颜色(最浅的黄色)覆盖了所有人口少于 200 百万的国家!由于配色刻度与 tm_fill() 图层相关,因此对该刻度的调整需要在这一次调用中完成。您会在第 3 章更系统地学习颜色,但现在只需知道,style 参数用于控制如何选择分档(断点)。
您的图还需要国家边界线。您可以为此添加一个 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()