如果我有这个shapefile。我想用它的三个图来绘制。
library(terra)
library(ggplot2)
library(tidyterra)
v <- vect(system.file("ex/lux.shp", package = "terra"))
p1=ggplot(v) +
geom_spatvector(aes(fill = NAME_2), color = "grey") +
borders() +
coord_sf(xlim = c(4, 8), ylim = c(49, 49.5))
p2=ggplot(v) +
geom_spatvector(aes(fill = NAME_2), color = "grey") +
borders() +
coord_sf(xlim = c(4, 8), ylim = c(49.5, 50))
p3=ggplot(v) +
geom_spatvector(aes(fill = NAME_2), color = "grey") +
borders() +
coord_sf(xlim = c(4, 8), ylim = c(50, 50.5))
我可以用这个来绘制它们,但我有三个图例。
grid.arrange(p1,p2,p3)
我怎么能只用一个图例来绘制这三个图,但最重要的是所有的图都有相同的尺寸(宽度和高度)。
2条答案
按热度按时间gzszwxb41#
一个选择是切换到
patchwork
包来合并您的图,这使得使用plot_layout(guides = "collect")
合并图例变得容易。y53ybaqx2#
另一种方法是
ggpubr
包中的ggarrange
函数。