ggplot2:组合绘图时修复轴的高度/宽度

rmf*_*rmf 1 r ggplot2

library(ggplot2)
library(gridExtra)

df1 <- data.frame(x=c("A1","A2","A3","A4"),something=c(10,18,24,32))
df2 <- data.frame(x=c("C1","C2","C3","C4"),somethingelse=c(10543,182334,242334,32255))


p1 <- ggplot(df1,aes(x,something))+
  geom_bar(stat="identity")
p2 <- ggplot(df2,aes(x,somethingelse))+
  geom_bar(stat="identity")


png("test.png",height=8,width=6,res=120,units="cm")
gridExtra::grid.arrange(p1,p2,heights=grid::unit(c(4,4),"cm"))
dev.off()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当我像上面那样手动组合两个或多个图时,如何将 y 轴宽度固定为相同,以便所有图 (A1-C1,A2-C2,..) 上的条形对齐?有没有办法计算最大 y 标签宽度并将该宽度应用于所有图的 y 轴?不,在这种特殊情况下,facet 不是我想要的。

PoG*_*bas 5

您可以使用ggarrangefromggpubr与参数align = "v"

# Plotting figures provided by OP
ggpubr::ggarrange(p1, p2, heights = c(4, 4), nrow = 2, align = "v")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明