首页 > 解决方案 > 在 r 中调整 grob 对象的边距

问题描述

我使用cowplot包制作了一个 grob 对象。我正在将对象添加grid.lines()grid.text()已完成的 grob 中,但由于它来自 cowplot,它会填满整个页面。如何调整 grob 对象的边距以在边缘周围添加一些空白?下面的示例代码。

library(ggplot2)
library(cowplot)

p1 <- ggplot(mtcars, aes(disp, mpg)) + 
  geom_point()
p2 <- ggplot(mtcars, aes(qsec, mpg)) +
  geom_point()
p3 <- ggplot(mtcars, aes(disp, mpg)) + 
  geom_point()
p4 <- ggplot(mtcars, aes(qsec, mpg)) +
  geom_point()
plot_grid(p1, p2, p3, p4, ncol = 2 ,nrow = 2,align="hv")

标签: rggplot2gridextracowplotgrob

解决方案


您只需theme(plot.margin = ...)像在 ggplot 中一样使用:

library(ggplot2)
library(cowplot)

p1 <- ggplot(mtcars, aes(disp, mpg)) + 
  geom_point()
p2 <- ggplot(mtcars, aes(qsec, mpg)) +
  geom_point()
p3 <- ggplot(mtcars, aes(disp, mpg)) + 
  geom_point()
p4 <- ggplot(mtcars, aes(qsec, mpg)) +
  geom_point()
plot_grid(p1, p2, p3, p4, ncol = 2 ,nrow = 2,align="hv")


plot_grid(p1, p2, p3, p4, ncol = 2 ,nrow = 2,align="hv") + 
  theme(plot.margin = unit(c(20,20,20,20), "points"))

reprex 包(v0.3.0)于 2020-04-29 创建


推荐阅读