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

R语言绘制含绝对值Z值的分布图空白无上下界问题如何解决

代码问题排查与修正

你当前的代码存在以下几处问题,是导致绘图空白的核心原因:

  • 阈值定义错误:你将上下阈值z.lbscore_d、z.ubscore_d都设为2,后续筛选条件range.d > z.lbscore_d & range.d < z.ubscore_d没有符合要求的取值,自然没有内容可绘制。如果要匹配|Z| > 2的统计要求,应该设置阈值边界为-2和2,分别绘制左右两侧的尾部区域。
  • 语法错误:polygon代码行存在括号不匹配的问题,代码里的转义引号&quot;也需要替换为正常的双引号,同时polygon的参数顺序错误,需要先传入x坐标向量,再传入y坐标向量才能正常绘制。
  • 坐标轴缺失:你在plot函数中设置了axes=FALSE,但后续只添加了x轴,未生成y轴。
  • 概率计算逻辑错误:原代码计算的是Z在两个相同取值之间的概率,结果必然为0,不符合|Z|>2的概率计算要求。

下面是修正后的可运行代码:

mu1 = 0
sigma1 = 1
# 匹配|Z|>2的要求设置阈值
z.cutoff <- 2

# 绘制正态分布曲线
range.d = seq(mu1-5*sigma1, mu1 + 5*sigma1, 0.01) 
y.d = dnorm(range.d, mu1, sigma1)
plot(range.d, y.d, type='l', ylim=c(0,max(y.d)+0.01))

# 分别绘制左侧|Z|<-2和右侧|Z|>2的红色区域
# 左侧尾部
d_left <- range.d < -z.cutoff
polygon(c(min(range.d), range.d[d_left], -z.cutoff), c(0, y.d[d_left], 0), col = "red")
# 右侧尾部
d_right <- range.d > z.cutoff
polygon(c(z.cutoff, range.d[d_right], max(range.d)), c(0, y.d[d_right], 0), col = "red")

# 计算|Z|>2的概率并展示
area <- 1 - (pnorm(z.cutoff, mu1, sigma1) - pnorm(-z.cutoff, mu1, sigma1))
result <- paste("P(|Z| > ", z.cutoff, ") =", signif(area, digits = 4))
mtext(result, side = 3, line = 0.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:27:05