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

3

假设我想把以下六个图合并成一个图。

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")) 

我想为上面三个图添加一个标题,为下面的三个图添加另一个标题。
如您所见,在此示例中我只能添加一个标题,但无法添加第二个。
有人可以帮助我并展示如何为下面的三个图添加第二个标题吗?
1个回答

3
要达到您所需的结果,一种选择是制作顶部和底部级别绘图的单独拼贴,并通过将它们包裹在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)


你能否在合并后添加标签,以避免手动设置? - Dan Adams
没事了,我刚测试了一下,它只是将顶部的集合标记为“A”,底部的集合标记为“B”。 - Dan Adams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接