在 ggplot 上绘制 shapefile

Plot shapefile on ggplot

library(raster)
library(ggplot2)

map.shp <- getData('GADM', country='FRA', level=1)

plot(map.shp)
ggplot(mtcars, aes(x = hp, y = disp)) + geom_point()

如何将 map.shp 作为小插图放在 ggplot 的右侧。

我认为有多种方法可以实现这一点,但一个简单的方法是使用 cowplotggdraw:

我正在使用 sfggplot2 开发版本的 geom_sf,可在 devtools::install_github("hadley/ggplot2")

require(ggplot2)
require(cowplot)
require(sf)
require(raster)

map.shp <- getData('GADM', country='FRA', level=1) %>% st_as_sf()



plot.cars <- ggplot(mtcars, aes(x = hp, y = disp)) + geom_point()
plot.map <- ggplot() + geom_sf(data=map.shp)

inset_map <- ggdraw() +
  draw_plot(plot.cars, 0, 0, 1, 1)+
  draw_plot(plot.map, 0.5, 0.52, 0.5, 0.4) 

抱歉,shapefile 的渲染速度对我来说似乎真的很慢,所以不能过多地调整定位。这就是你想要的吗?