【问题标题】:Aligning basic ggplots with faceted ggplots in ggarrange (R)将基本 ggplots 与 ggarrange (R) 中的多面 ggplots 对齐
【发布时间】:2021-12-02 19:39:11
【问题描述】:

我创建了许多 ggplots 图表,我想用 ggpubr 包的 ggarrange 函数来组织这些图表。 当我尝试将基本 ggplots 与多面 ggplots 结合时遇到了一个问题:我无法再对齐它们了。

这是我的问题的可重现示例:

#Creating some data
df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
       dose=rep(c("0.5", "1", "2"),2),
       len=c(6.8, 15, 33, 4.2, 10, 29.5))
head(df2)


#normal ggplot #1
p1<-ggplot(data=df2, aes(x=dose, y=len, group=supp)) +
  geom_line()+
  geom_point()

#normal ggplot #2 with a different y axis
p2<- ggplot(data=df2, aes(x=dose, y=10*len, group=supp)) +
  geom_line()+
  geom_point()

#faceted plot
p3<-p2+
  facet_wrap(. ~ supp)

当我结合两个基本的 ggplots 并强制与 y 轴垂直对齐时,它就像一个魅力!

ggarrange(p1,p2,
          nrow=2,
          align="v")

但是当我将基本图与多面图结合时,对齐不起作用。

ggarrange(p1,p3,
          nrow=2,
          align="v")

我收到以下警告:

警告消息:图表不能垂直对齐,除非轴 参数已设置。放置未对齐的图表。

你能帮我解决这个问题吗?我已经看到了用cowplot解决这个问题的其他潜在想法,但我真的很想坚持使用ggpubr!

非常感谢

【问题讨论】:

  • 您是否考虑过用于情节构图的拼凑包?
  • 不,我没有!但我只是检查了一下,它就像一个魅力!您想提出一个我可以接受的拼凑包的答案吗?
  • 当然,虽然我觉得只用两行代码给出答案有点糟糕:')

标签: r ggplot2 alignment facet-wrap ggpubr


【解决方案1】:

这是一个使用 patchwork 包的解决方案。假设我们已经按照原帖中的描述设置了 p1p3 的图。然后,通过一些拼凑的魔法,我们将情节结合起来。 / 运算符表示 p1 应高于 p3。

library(patchwork)
p1 / p3

【讨论】:

    【解决方案2】:

    您可以填充 y 轴以在 ggarrange 中进行调整。您可以围绕 y 轴填充边距,这将允许两个数字对齐(虽然有点 hacky)。

    df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
                      dose=rep(c("0.5", "1", "2"),2),
                      len=c(6.8, 15, 33, 4.2, 10, 29.5))
    
    
    #normal ggplot #1
    p1<-ggplot(data=df2, aes(x=dose, y=len, group=supp)) +
      geom_line()+
      geom_point() +
      theme(axis.title.y = element_text(margin = margin(t = 0, r = 0, b = 0, l = 5)))
    
    #normal ggplot #2 with a different y axis
    p2<- ggplot(data=df2, aes(x=dose, y=10*len, group=supp)) +
      geom_line()+
      geom_point()
    
    p3<-p2+
      facet_wrap(. ~ supp)
    
    ggarrange(p1,p3,
              nrow=2)
    

    【讨论】:

    • 我明白了,谢谢你的帮助!以我拥有的图表数量来看,它会有点太老套了!
    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 2014-03-18
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多