当我尝试将ggmap与形状文件组合时,我遇到了剪切问题。Kahle和Wickham(2013:158)中的示例效果很好,因为ggmap的光栅图像覆盖了整个形状文件。下面是一个示例,当我尝试在覆盖较小区域的ggmap绘制美国州的形状文件时发生的情况。ggmap显示纽约市,我想将其与美国各州的边界叠加(仅作为示例)。结果地图没有任何意义。问题在于形状文件被剪裁,而ggplot连接未被剪裁的点。以下是代码。形状文件来自这里。我只在此处显示最后一个图。
Kahle, David和Hadley Wickham. 2013年. "Ggmap:使用ggplot2进行空间可视化." R杂志5(1):144-61。
如何解决这个问题?
path <- "PATH TO SHAPEFILE"
library("ggmap")
library("rgdal")
# shapefile
states <- readOGR(dsn = path, layer = "states")
states_df <- fortify(states)
# plot shapefile
plot(states, lwd = 0.1)
ggplot(states_df, aes(long, lat, group = group)) +
geom_polygon(colour = "black", fill = NA, size = 0.1)
# combine ggmap with shapefile
map <- get_map("new york city", zoom = 10, source = "stamen")
ggmap(map, extent = "device")
ggmap(map, extent = "device") +
geom_polygon(aes(long, lat, group=group), data = states_df, colour = "red", fill = NA, size = 1)
Kahle, David和Hadley Wickham. 2013年. "Ggmap:使用ggplot2进行空间可视化." R杂志5(1):144-61。
![enter image description here](https://istack.dev59.com/AfNxt.webp)