开始使用免费开始使用

分层构建绘图

现在您已经更了解 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()
编辑并运行代码