如何让多边形与曲线对齐?R语言绘图问题求助
问题修正:多边形与t分布曲线对齐
你的代码中polygon()函数的坐标构造存在两处关键错误,导致绘图错位:
- y向量错误插入了
dt(critvalmin, df=4),破坏了x与y的对应关系 - x向量末尾重复添加
critvalmax,进一步打乱坐标序列
修正后的完整代码
critvalmax <- qt(0.975, df=4) critvalmin <- qt(0.025, df=4) xvals <- seq(-5, 5, length=100) fx.samp.t <- dt(xvals, df=4) plot(xvals, dnorm(xvals), col="white") lines(xvals, fx.samp.t, lty=1, lwd=2) abline(v= critvalmin, lty=2) abline(v= critvalmax, lty=2) abline(h=0, lty=3) # 提取临界值区间内的x和对应y值 x_interval <- xvals[xvals >= critvalmin & xvals <= critvalmax] y_interval <- fx.samp.t[xvals >= critvalmin & xvals <= critvalmax] # 构建闭合多边形坐标:从左边界(0)沿曲线到右边界(0),形成完整填充区域 polygon( x = c(critvalmin, x_interval, critvalmax), y = c(0, y_interval, 0), density=10, lty=3 )
修正逻辑说明
- 先单独提取区间内的x、y值,确保每一个x都有对应的曲线y值,避免坐标错位
- 构造多边形的x序列:从左临界值(对应y=0)开始,依次取区间内的所有x点,最后到右临界值(对应y=0)
- 构造多边形的y序列:从0开始,依次取区间内的曲线y值,最后回到0,形成闭合的填充区域,完美贴合曲线和坐标轴
内容的提问来源于stack exchange,提问作者rretrarr
相关产品推荐
相关产品推荐

