首页 > 解决方案 > 如何在 r 中使用 ggarrange 减少绘图之间的垂直空白

问题描述

我在尝试删除每个图之间的垂直空白时遇到了麻烦。我有几个地块,所以我习惯ggarrange将它们组合起来。

这是我的代码:

figure <- ggarrange(lima_exceso,loreto_exceso,amazonas_exceso,madre_exceso, 
                    callao_exceso,apurimac_exceso,ancash_exceso, 
                    sanmartin_exceso, ica_exceso,ayacucho_exceso, 
                    arequipa_exceso, piura_exceso,junin_exceso,pasco_exceso, 
                    cusco_exceso,lambayeque_exceso,huancavelica_exceso,
                    puno_exceso,tumbes_exceso,lalibertad_exceso,                       
                    tacna_exceso,huanuco_exceso,cajamarca_exceso,
                    labels = c(""), 
                    ncol = 4, nrow = 6)



annotate_figure(figure,
                top = text_grob("Exceso de fallecidos  (media móvil-7d)",
                color = "black", face = "bold", size = 12),
                bottom = text_grob("Data source: \n  Minsa ", 
                color = "black", hjust = 0, x = 0, face = "italic",
                size = 8), fig.lab = "", fig.lab.face = "bold", 
                fig.lab.pos = "top.right"  , fig.lab.size = 8)


ggsave(file="ex31.pdf" , height = 350, units = "mm" , width =  340)

这是结果:

在此处输入图像描述

如您所见,图形之间有很多垂直空间,这就是标题离绘图太近的原因。pdf的边距很小。

因此,我尝试通过为每个图设置边距(仅针对第一列)来缩小该空间,但是,结果不是我想要的。

我将此行代码添加到第一列的图中:

+theme(plot.margin = unit(c(-0.25,0.5,-0.25,0.5), "lines"))

结果是这样的:

在此处输入图像描述

如您所见,我缩小了垂直空间,但现在第一列的图比其他图高,并且第一列的标题(右角)离 ggarrange 标题太近了。我想减少地块之间的空间,但我不想修改其他任何东西。

有没有办法减少我的地块的垂直空间使用ggarrange

标签: rggplot2

解决方案


推荐阅读