с аргументом

от вопрос уже есть ответ здесь:

Выровнять по левому краю два ребра графа (ggplot) 8 ответов
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()

Когда я вручную комбинирую два или более графиков, как указано выше, как я могу зафиксировать ширину оси Y, чтобы они были одинаковыми, чтобы мои столбцы на всех графиках (A1-C1, A2-C2, ..) совпали? Есть ли способ рассчитать максимальную ширину метки y и применить эту ширину к оси y всех графиков? И нет, грани - это не то, чего я хочу в данном конкретном случае.

 baptiste28 дек. 2017 г., 10:11
некоторые обсуждения в этой виньетке:cran.r-project.org/web/packages/egg/vignettes/Ecosystem.html
 eipi1028 дек. 2017 г., 09:53
Вот два варианта:egg::ggarrange(p1, p2) или жеcowplot::plot_grid(p1, p2, align="v", ncol=1).

Ответы на вопрос(1)

Решение Вопроса

Вы можете использоватьggarrange изggpubr с аргументомalign = "v"

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

Ваш ответ на вопрос