将小平面图与另一个图对齐(无小平面)

align facet plot with another plot (without facet)

晚上好,

我正在尝试将多面图与没有面的图垂直对齐。实际上,第一个图使用 x(时间序列)中的连续值,并且分面区分组条件。第二个图使用这些组条件作为离散 x 值。

请看下面的例子: Example of the 2 plots non aligned

此图是使用 grid.arrange()

生成的
grid.arrange(plotGrowth, plotqPCR, ncol=1) 

所以为了对齐它们,我尝试了不同的解决方案:

grid.draw(rbind(ggplotGrob(plot1), ggplotGrob(plot2), size = "last"))

library(gtable)
library(grid) # low-level grid functions are required
g1 <- ggplotGrob(plot1)
g2 <- ggplotGrob(plot2)
g <- rbind(g1, g2, size="first") # stack the two plots

但基本上我总是得到同样的错误: 错误:ncol(x) == ncol(y) 不是 TRUE,这表明 R 无法管理,因为第一个图由 15 列组成,第二个由 1 列组成。 ..

我想一个解决方案是让 R 将前 15 个方面的图视为 1 列的 1 个图,但我不知道该怎么做。然而,可能有更好的方法来做到这一点,所以如果您有任何想法,我将不胜感激。

非常感谢。 最好的问候。

试试这个,

egg::ggarrange(plot1, plot2, ncol=1)

尝试cowplot

    cowplot::plot_grid(plotGrowth, plotqPCR, 
                       ncol = 1, rel_heights = c(1, 1),
                       align = 'v', axis = 'lr') 

patchwork 对于 ggplot2

    plotGrowth + plotqPCR + plot_layout(nrow = 2, heights = c(1, 1))