r - 如何使用 patchwork 在 ggplot2 中添加第二个标题?

标签 r ggplot2

假设我想将以下六个地 block 合并为一个地 block 。

library(ggplot2)
p1 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p2 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p3 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp)) 

p4 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p4 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p5 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p6 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

为此,我使用了 Pachwork 包:

 library(patchwork)
    
    (p1 | p2  | p2 ) / (p4  | p5  | p6 ) + 
      plot_annotation(title = "Perceptual Domain", tag_levels = 'A') & 
      theme(plot.title = element_text(hjust = 0.5), plot.tag = element_text(size = 15, face = "bold")) 

我想为上面的三个图添加一个标题,为下面的三个图添加一个单独的标题。

如您在示例中所见,我只能添加一个标题,而不能添加第二个。

有人可以帮助我并告诉我如何为下面的三个图添加第二个标题吗?

最佳答案

实现您想要的结果的一个选择是为顶层和底层图制作单独的 patchworks,并通过将它们包裹在 patchwork::wrap_elements 中将它们粘合在一起。请注意,此方法需要一些“手动”工作来设置底层图的标记级别:

library(ggplot2)
library(patchwork)

p1 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp))

p11 <- (p1 | p1  | p1 ) +
  plot_annotation(title = "Title 1", tag_levels = "A") & 
  theme(plot.title = element_text(hjust = 0.5), plot.tag = element_text(size = 15, face = "bold"))

p12 <- (p1 | p1  | p1 ) +
  plot_annotation(title = "Title 2", tag_levels = list(c("D", "E", "F"))) & 
  theme(plot.title = element_text(hjust = 0.5), plot.tag = element_text(size = 15, face = "bold"))

wrap_elements(p11) / wrap_elements(p12)

关于r - 如何使用 patchwork 在 ggplot2 中添加第二个标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70977939/

相关文章:

r - 为什么添加新列后 data.table 的列名会发生变化?

r - MASS::lm.ridge 系数

r - 如何向 geom_boxplot 添加摘要信息

r - 使用 ggplot 在一页上绘制多个图

r - textInput 框的高度随用户输入调整

r - 如何以编程方式创建 R 函数?

r - 从 data.frame 中的组中获取均值和标准差

python - ggplot2 中的克利夫兰点图

r - ggplot geom_linerange 中的 Alpha 由 Mac 上的观察次数决定

r - 在多个页面上绘图