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

如何在R中创建带均值连线的四分位距须状图?

R绘制时间点均值+四分位距图的简便方法

步骤1:将宽格式数据转换为长格式

如果你的原始数据是宽格式(每个时间点对应单独一列),先用tidyr::pivot_longer转换为ggplot2适配的长格式:

# 加载tidyverse工具包(包含ggplot2、dplyr、tidyr)
library(tidyverse)

# 示例宽格式数据(替换为你的真实数据集)
df <- tibble(
  Person = paste0("Person ", 1:100),
  Timepoint1 = rnorm(100, 2, 1),
  Timepoint2 = rnorm(100, 10, 2),
  Timepoint3 = rnorm(100, 30, 3)
)

# 转换为长格式
df_long <- df %>%
  pivot_longer(
    cols = starts_with("Timepoint"),  # 匹配所有时间点列
    names_to = "Timepoint",           # 生成时间点分组列
    values_to = "Value"               # 生成实验室数值列
  )

步骤2:一键绘制目标图形

使用ggplot2的stat_summary函数,它会自动计算每个时间点的均值和四分位距,无需手动汇总数据,是最简便的实现方式:

ggplot(df_long, aes(x = Timepoint, y = Value)) +
  # 绘制四分位距误差棒(覆盖Q1到Q3区间)
  stat_summary(
    fun.data = function(x) data.frame(
      y = mean(x),
      ymin = quantile(x, 0.25),
      ymax = quantile(x, 0.75)
    ),
    geom = "errorbar",
    width = 0.2,  # 误差棒两端宽度
    color = "black"
  ) +
  # 绘制均值点
  stat_summary(
    fun = mean,
    geom = "point",
    size = 3,     # 点的大小
    color = "black"
  ) +
  # 切换为简洁主题(贴近目标图风格)
  theme_classic() +
  # 设置坐标轴标签
  labs(
    x = "测量时间点",
    y = "实验室数值"
  )

可选样式调整

如果需要更贴合目标图的视觉风格,可修改以下参数:

  • 调整误差棒的width、linetype(比如虚线linetype = "dashed")
  • 更换均值点的shape(比如实心圆shape = 19)
  • 修改颜色、坐标轴字体大小等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:45:24