开始使用免费开始使用

发挥 ggplot2 的优势

您已经看到,可以在 ggmap() 图上通过添加 geom_***() 图层并显式指定数据和映射来叠加图层,但这种方法有两个主要缺点:后续图层也必须再次指定数据和映射,而且分面(facetting)将完全无法使用。

幸运的是,ggmap() 提供了规避这些缺点的方法:base_layer 参数。您可以将一个常规的 ggplot() 调用传给 base_layer,在其中为所有图层指定默认的数据和映射。

例如,最初的绘图:

ggmap(corvallis_map) +
  geom_point(data = sales, aes(lon, lat))

可以改写为:

ggmap(corvallis_map, 
    base_layer = ggplot(sales, aes(lon, lat))) +
  geom_point()

将初始 geom_point() 函数中的 aes(x, y)data 移到 ggmap() 调用内部的 ggplot() 中后,您就可以像平常使用 ggplot2 那样添加分面或额外图层。

我们来试一试。

本练习是课程的一部分

在 R 中可视化地理空间数据

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Use base_layer argument to ggmap() to specify data and x, y mappings
ggmap(corvallis_map_bw, ___) +
  geom_point(data = sales, aes(lon, lat, color = year_built))
编辑并运行代码