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

使用cowplot的plot_grid绘制箱线图时标签无法识别问题求助

问题原因与解决方案

1. label_size参数不生效的原因

plot_grid的label_size参数仅作用于自动生成的子图标签,你当前的代码没有传入labels参数指定子图标签内容,因此该参数不会生效。

2. 特征标签过小、行高不足的原因

你共需要展示57个分类特征,在默认绘图高度下,分类轴的文本会被压缩到极小尺寸,属于ggplot的轴样式配置和出图尺寸问题,和plot_grid无关。


修正后代码
library(cowplot)
library(tidyverse)

# 先单独生成两张图,方便统一修改配置,避免重复代码
plot_raw <- sample_data1 %>% 
  pivot_longer(-c(ID, outcome), names_to = "feature") %>% 
  # 若特征顺序不符合预期,可新增下行指定特征的排序规则,替换为你实际的特征命名规则即可
  # mutate(feature = factor(feature, levels = paste0("特征前缀", 1:57))) %>%
  ggplot(aes(x = feature, y = value, fill = outcome)) +
  geom_boxplot() +
  coord_flip() +
  labs(title = "未归一化特征") +
  theme(
    legend.position="top",
    # 调整翻转后特征轴的文本大小,可按需调整数值
    axis.text.y = element_text(size = 8)
  )

plot_norm <- sample_data1.norm %>% 
  pivot_longer(-c(ID, outcome), names_to = "feature") %>% 
  # 同上,若需要可补充特征排序代码
  ggplot(aes(x = feature, y = value, fill = outcome)) +
  geom_boxplot() +
  coord_flip() +
  labs(title = "归一化特征") +
  theme(
    legend.position="top",
    axis.text.y = element_text(size = 8)
  )

# 调用plot_grid,添加labels参数后label_size才会生效
plot_grid(
  plot_raw,
  plot_norm,
  labels = c("A", "B"),
  label_size = 12
)

# 导出时设置足够的高度,确保57个特征有充足的展示空间,可按需调整height数值
ggsave("feature_boxplot.png", width = 15, height = 20, dpi = 300)

额外调整建议

如果还是觉得行间距太小,可在导出时进一步增大height参数的数值,画布高度越大,每个特征的展示空间越充足,文本也会更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:00:02