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

为何ggplot绘制的箱线图与Prism等其他软件的结果存在差异

差异原因说明

导致ggplot2与Prism计算的中位数结果不一致的核心原因是你代码中使用的ylim()函数:

  • ggplot2中ylim()是scale_y_continuous(limits = ...)的简写,执行逻辑是先过滤删除所有超出设定y轴范围的观测值,再计算箱线图所需的中位数、四分位数等统计量。从你提供的示例数据可见126 Y组存在高于2500的强度值(如3470.869),这类值会被ylim(0,2.5e3)直接剔除,基于剩余值计算得到的中位数自然低于真实结果。
  • Prism的轴范围设置仅控制可视化的显示区间,不会删除原始观测值,统计量计算基于全部输入数据,所以和你手动计算的结果一致。
修正方案

将ylim(0,2.5e3)替换为coord_cartesian(ylim = c(0, 2.5e3))即可,coord_cartesian()仅裁剪可视化的坐标范围,不会修改参与统计计算的原始数据,修正后的完整代码如下:

ggplot(data = df.08.long,
      aes(x = TMT_signals, y = as.numeric(TMT_Intensities), fill = `probe.Mod.or.not(Y/N)`)) +
  geom_boxplot() +
  coord_cartesian(ylim = c(0, 2.5e3)) +
  theme_classic() +
  theme(axis.title=element_text(size=8),
        axis.text=element_text(size=10),
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

内容的提问来源于stack exchange,提问作者Chemist learns to code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:54:02