You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ggarrange组合ggplot2环形箱线图时轴标签缺失问题求助

解决环形箱线图组合时轴标签缺失及优化位置的方案

1. 先调整单个图表的标签位置与边距

环形箱线图(基于coord_polar)的轴标签容易因极坐标布局被裁剪,先给单个图表预留足够空间并把标签外移:

# 示例单个环形箱线图代码
p1 <- ggplot(data, aes(x = group, y = value)) +
  geom_boxplot() +
  coord_polar(theta = "x") +
  theme(
    # 把x轴标签向外偏移,hjust设为负数实现外移效果
    axis.text.x = element_text(hjust = -0.5, size = 10),
    # 增大绘图区域边距,给标签留出显示空间
    plot.margin = margin(10, 30, 10, 30, "pt") # 上、右、下、左的边距,单位pt
  )

2. 组合图表时保留自定义边距

不管用ggpubr、cowplot还是gridExtra,核心是确保子图的自定义边距不被压缩:

用ggpubr的ggarrange

library(ggpubr)
ggarrange(p1, p2, p3, p4,
          nrow = 2, ncol = 2,
          align = "hv",
          # 增加子图间及整体的留白
          padding = unit(1, "cm"))

用cowplot的plot_grid

library(cowplot)
plot_grid(p1, p2, p3, p4,
          nrow = 2, ncol = 2,
          rel_widths = c(1,1), rel_heights = c(1,1),
          axis = "lrbt",
          align = "all")

用gridExtra的grid.arrange

library(gridExtra)
grid.arrange(p1, p2, p3, p4,
             nrow = 2, ncol = 2,
             padding = unit(15, "pt"))

3. 批量调整所有子图(高效方案)

如果有多个图表,用lapply统一修改主题参数:

# 假设所有图表存在列表plots中
plots <- list(p1, p2, p3, p4)
plots_adjusted <- lapply(plots, function(p) {
  p + theme(
    axis.text.x = element_text(hjust = -0.5, size = 10),
    plot.margin = margin(15, 40, 15, 40, "pt")
  )
})

# 组合调整后的图表
ggarrange(plotlist = plots_adjusted, nrow=2, ncol=2)

核心逻辑:极坐标下的轴标签位置超出了默认绘图区域,组合工具会自动裁剪边缘内容,因此必须通过plot.margin预留空间,同时用hjust参数让标签向外偏移,避免被遮挡或裁剪。

内容的提问来源于stack exchange,提问作者ASHooper93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:55:21