使用 Cowplot align 保持地块间距不变

Keeping plot spacing intact using Cowplot align

我正在尝试使用 Cowplot 制作一些 'close stacked' 绘图。我可以使用以下 MWE 获得我想要的效果:

library(ggplot2)
library(cowplot)

disp_plot <- ggplot(data=mtcars,aes(x= hp,y=disp)) + geom_point()+ 
             theme(plot.margin = unit(c(0.3,0.3,0.0,0.15), "cm"),
             axis.text.x =element_blank(),axis.title.x =element_blank())
mpg_plot <- ggplot(data=mtcars,aes(x= hp,y=mpg)) + geom_point()+
            theme(plot.margin = unit(c(0.0,0.3,0.0,0.15), "cm"),
            axis.text.x =element_blank(),axis.title.x =element_blank())
qsec_plot <- ggplot(data=mtcars,aes(x= hp,y=qsec)) + geom_point()+
             theme(plot.margin = unit(c(0.0,0.3,0.3,0.15), "cm"))
mp <- plot_grid(disp_plot, mpg_plot, qsec_plot,ncol = 1,align='v', axis = 'l')

请注意,mpg 与其他垂直标度不同。为了使绘图的垂直尺寸也相同,我想在 plot_grid 中使用 "align='hv'"。然而,这会导致由边距设置的间距恢复原样,并且图形再次飞散。有什么办法可以保留间距?

不是 cowplot,但这似乎有效。

library(egg)
library(grid)
grid.draw(ggarrange(plots=list(disp_plot, mpg_plot, qsec_plot)))