我正在尝试使用ggarrange()绘制2x2图。我想让第四块地的高度是其他三块地的一半。
我已经尝试了一个解决方案与高度的论点,但它似乎只适用于列操作。
fig1 <- ggarrange(p1,p2,p3,p4,
labels = 'auto',
ncol = 2,
nrow = 2,
common.legend = TRUE,
legend = 'top',
heights = c(2, 2, 2, 1),
widths=c(1, 1, 1, 1))
1条答案
按热度按时间sg3maiej1#
ggpubr::ggarrange()
的heights
和widths
参数仅获取每行或每列的相对大小,而不是单个图的大小。来自文档:宽度
(可选)相对列宽的数值向量。例如,在两列网格中,width = c(2,1)将使第一列的宽度是第二列的两倍。
有一些方法可以解决这个问题:
方法一:合并将一块地和一块空白地合并为一半大小,
ggarrange()
使用两次。工作正常,但它无法合并,嵌套图例指定与
common.legend = TRUE
。如果你不需要一个普通的图例,那么它工作得很好。方法二:使用
ggplot2::theme()
为图添加边距。这工作得很好,但是根据您指定导出的打印区域,您可能必须使用试错法来微调边距。