R中ggarrange组合绘图如何为两列分别添加b₁、b₂列标签
R中ggarrange组合2列3行图形添加分栏列标签方法
问题原因
原代码仅向annotate_figure的bottom参数传入单个b₂文本对象,仅会在组合图整体底部居中显示单个标签,无法实现双列分别标注的需求。
实现代码
先将两个列标签按2列布局组装为和组合图列数匹配的grob对象,再传入bottom参数即可自动对齐到对应列下方:
# 若未安装gridExtra,先运行 install.packages("gridExtra") library(ggpubr) library(gridExtra) # 按原逻辑排布2列3行共6张子图 figure <- ggarrange(p, r, g ,s, k ,t, labels = c("A", "D", "B", "F", "C", "G"), ncol = 2, nrow = 3) # 构造分栏列标签,b₁对齐第一列、b₂对齐第二列 col_labels <- arrangeGrob( text_grob(expression("b"[1]), color = "black", face = "bold", size = 14), text_grob(expression("b"[2]), color = "black", face = "bold", size = 14), ncol = 2 ) # 添加列标签输出最终图 annotate_figure(figure, bottom = col_labels)
可调参数
- 若标签和图区间距不合适,可在
text_grob中添加y参数调整垂直偏移,例如text_grob(..., y = 0.7)可让标签向上偏移 - 标签的字体、字号、颜色等样式直接在
text_grob中修改即可,和单标签写法完全一致 - 最终效果参考:

内容的提问来源于stack exchange,提问作者lola
相关产品推荐
相关产品推荐

