在ggplot上绘制shapefile

时间:2018-06-01 18:05:06

标签: r ggplot2 shapefile sp

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的右侧作为小插图。

1 个答案:

答案 0 :(得分:5)

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

我在sf

提供的geom_sf开发版中使用ggplot2devtools::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) 

enter image description here

对不起,shapefile似乎对我来说渲染速度很慢,所以无法定位太多的定位。是这样的,你所追求的是什么?