将facet plot与另一个plot(无facet)对齐

时间:2018-02-19 18:25:15

标签: r ggplot2 vertical-alignment facet-wrap

晚上好,

我正在尝试将多面图与一个没有面的图进行垂直对齐。实际上,第一个图是使用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列组成.... < / p>

我想一个解决方案是让R考虑前15个方面的情节作为1列的1个情节,但是我不知道如何这样做。然而,可能有更好的方法,所以如果您有任何想法,我将非常感激。

提前多多感谢。 最好的问候。

2 个答案:

答案 0 :(得分:1)

尝试cowplot

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

patchwork

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

答案 1 :(得分:0)

试试这个,

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