分级统计地图(Choropleth map)
既然已经了解如何绘制多边形,接下来把这些多边形叠加到地图上。请记住:需要用 ggmap() 替换原来的 ggplot() 调用,并把最初的 ggplot() 调用放到 base_layer() 参数中,然后像往常一样再添加多边形图层:
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
现在就在控制台里试试吧!
呃哦,效果不太对。选区 1、3 和 8 看起来参差不齐,而且不正确。发生了什么?部分选区边界超出了底图范围。由于 ggmap() 的默认设置,超出地图范围的数据在绘图前会被丢弃,因此有些多边形边界被去掉,剩余点连起来后形状就会出错。
别担心,有解决办法:ggmap() 提供了控制此行为的参数。将 extent = "normal" 与 maprange = FALSE 一起设置,可以让绘图边界依据数据范围而不是地图范围来确定。
本练习是课程的一部分
在 R 中可视化地理空间数据
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))