在 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 的右侧。
我认为有多种方法可以实现这一点,但一个简单的方法是使用 cowplot
和 ggdraw
:
我正在使用 sf
和 ggplot2
开发版本的 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 的渲染速度对我来说似乎真的很慢,所以不能过多地调整定位。这就是你想要的吗?
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 的右侧。
我认为有多种方法可以实现这一点,但一个简单的方法是使用 cowplot
和 ggdraw
:
我正在使用 sf
和 ggplot2
开发版本的 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 的渲染速度对我来说似乎真的很慢,所以不能过多地调整定位。这就是你想要的吗?