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

ggstripchart值显示异常求助:错误展示0.1-1.0范围数值

问题

使用ggstripchart绘制图表时出现数值范围显示异常:

  • 数据集包含Date和Resistance两列,当前Resistance多数观测值为0.5,数据集会定期更新
  • 代码可正常运行,但输出图表的y轴范围显示为0.1-1.0,与实际数据分布不符
  • 预期用该stripchart展示每日数值范围,已设定LCL=0.2、UCL=0.6

用户代码如下:

lcl <- 0.2
ucl <- 0.6

res <- ggstripchart(df, x = "Date", y = "Resistance", color = "Date", jitter = 0, size = 3, add = "boxplot", add.params = list(width = .2, color = "black")) +
            geom_hline(yintercept = lcl, linetype = "longdash") +
            geom_hline(yintercept = ucl, linetype = "longdash") +
            labs(title = "Resistance", x = "Date", y = "Resistance (ohms)") +
            annotate("text", x= .8, y= ucl + .02, label = paste('USL:', ucl, 'ohms'), size = 3) +
            annotate("text", x= .8, y= lcl - .02, label = paste('LSL:', lcl, 'ohms'), size = 3)
            
res <- res + rremove("legend") 
res <- res + rremove("y.ticks")
res <- res + font("xy.text", size = 8, color = "black")
res <- res + scale_x_discrete(guide = guide_axis(n.dodge = 2))
res <- res + scale_colour_viridis_d(option="mako", begin = .5, end = .8)
res

排查方向与解决建议

1. 确认数据集实际数值范围

先检查Resistance列是否存在超出0.2-0.6的异常值,运行以下代码查看数据极值:

summary(df$Resistance)
range(df$Resistance)

如果数据中存在0.1或1.0的数值,y轴会自动适配这些值,导致范围被拉大。

2. 手动限定y轴范围

若确认数据确实在0.2-0.6区间内,可通过scale_y_continuous强制锁定y轴范围,避免ggplot自动扩展:

# 添加到代码末尾
res <- res + scale_y_continuous(limits = c(lcl, ucl), expand = c(0, 0))

expand = c(0,0)会移除轴两端的留白,让范围完全贴合设定的上下限。

3. 排查箱线图的影响

代码中添加了add = "boxplot",如果某一天的数据存在极端值(哪怕单个点),箱线图的须会延伸到极值位置,拉宽y轴范围。可先注释掉箱线图部分验证:

# 临时注释add参数
res <- ggstripchart(df, x = "Date", y = "Resistance", color = "Date", jitter = 0, size = 3) +
# 其余代码不变

若去掉箱线图后范围恢复正常,可调整箱线图参数隐藏异常点:

add.params = list(width = .2, color = "black", outlier.shape = NA)

4. 调整ggplot自动扩展规则

ggplot默认会给轴范围添加留白,避免数据点贴轴。若数据集中在0.5,自动扩展可能过度拉大范围,可通过expand参数控制留白大小:

res <- res + scale_y_continuous(expand = c(0.01, 0)) # 仅保留极小留白

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:35:22