使用 Cowplot align 保持绘图间距不变

Posted

技术标签:

【中文标题】使用 Cowplot align 保持绘图间距不变【英文标题】:Keeping plot spacing intact using Cowplot align 【发布时间】:2018-03-04 07:29:32 【问题描述】:

我正在尝试使用 Cowplot 制作一些“紧密堆叠”的图。我可以使用以下 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'”。但是,这会导致由边距设置的间距恢复并且数字再次分开。有没有办法可以保持我的间距?

【问题讨论】:

【参考方案1】:

不是cowplot,但这似乎可行。

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

【讨论】:

以上是关于使用 Cowplot align 保持绘图间距不变的主要内容,如果未能解决你的问题,请参考以下文章

使用 cowplot 时减少绘图之间的边距

R Shiny CSS:删除特定行之间的空间,同时保持所有其他间距不变

在悬停时使用字母间距保持宽度

使用cowplot包的多图的居中X轴标签

禁用ggplots的cowplot默认值

使用 plot_grid 和 cowplot 删除 NULL 图上的标签