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

R语言基于多列分组宽表绘制合并箱线图的实现方法

实现方法

核心逻辑

当前weightloss数据集为宽结构,t1、t2、t3分别为独立列,无法直接映射到ggplot的单一坐标轴,需先转换为长结构数据。

完整代码

首先加载所需依赖包:

library(tidyverse)
library(rstatix) # 你用到的get_summary_stats来自该包

第一步:将宽格式数据转换为长格式

# 转换长数据,同时将测试阶段设为有序因子保证x轴顺序正确
weight_long <- weightloss %>%
  pivot_longer(
    cols = c(t1, t2, t3), # 指定要合并的得分列
    names_to = "trial_type", # 新生成的测试阶段列名,即你需要的x轴因子
    values_to = "score" # 新生成的得分列名,即你需要的y轴取值
  ) %>%
  mutate(trial_type = factor(trial_type, levels = c("t1", "t2", "t3")))

第二步:绘制箱线图

ggplot(weight_long, aes(x = trial_type, y = score)) +
  geom_boxplot(width = 0.6, fill = "#86BBD8", alpha = 0.7) + # 自定义箱线图样式
  labs(
    x = "测试阶段",
    y = "测量得分",
    title = "三个测试阶段得分分布箱线图"
  ) +
  theme_classic()

拓展功能

如果需要同时区分饮食、运动分组的差异,可直接在映射中添加fill参数即可分组展示:

ggplot(weight_long, aes(x = trial_type, y = score, fill = diet)) +
  geom_boxplot(width = 0.6, alpha = 0.7, position = position_dodge(0.8)) +
  labs(
    x = "测试阶段",
    y = "测量得分",
    fill = "是否控制饮食",
    title = "不同饮食分组各测试阶段得分分布"
  ) +
  theme_classic()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:54:00