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

cha*_*geR 3 r ggplot2

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

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))
Run Code Online (Sandbox Code Playgroud)

为此,我使用 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")) 
Run Code Online (Sandbox Code Playgroud)

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

正如您在示例中看到的,我只能添加一个标题,而不能添加第二个标题。

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

ste*_*fan 5

实现您想要的结果的一种选择是为顶部和底部水平图制作单独的拼凑物,然后通过将它们包裹在内部将它们粘合在一起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)
Run Code Online (Sandbox Code Playgroud)