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

使用smooth.spline绘制的图形未呈平滑曲线,请求排查错误

问题分析与修正方案

错误原因

你的代码中,smooth.spline确实拟合出了平滑样条模型,但调用lines(t, c$y)时,只是将原始4个数据点对应的拟合值用直线连接,自然呈现为折线——因为你只用到了4个离散点,没有利用样条模型的连续性生成足够多的点来展现平滑效果。另外,变量名c是R的内置函数,用它做变量名可能引发潜在问题,建议避免。

修正代码

Y <- c(0,2,-1,4)
t <- c(1:4)
plot(t,Y)
# 拟合平滑样条,改用更安全的变量名
spl <- smooth.spline(t,Y,lambda=1)
# 在原始t的范围内生成100个均匀分布的点,用于绘制平滑曲线
t_new <- seq(min(t), max(t), length.out = 100)
# 基于拟合好的样条模型预测新点的y值
y_pred <- predict(spl, x = t_new)$y
# 绘制平滑曲线
lines(t_new, y_pred, col = "red", lwd = 2)

关键说明

  • 用seq生成足够多的新点(比如示例中的100个),才能充分展现平滑样条的连续曲线形态
  • 借助predict函数从拟合好的样条模型中获取新点的预测值,再通过lines连接这些点,就能得到预期的平滑曲线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:03:14