【问题标题】:How to fit a smooth curve through my data?如何通过我的数据拟合平滑曲线?
【发布时间】:2014-03-13 02:24:02
【问题描述】:

我有几个数据点需要用曲线“连接”。我想说的是,数据点不是单调增加的,所以我想在它们之间画一条平滑的线,明显地上下波动。

我在 smooth.spline 函数上取得了一定的成功。有什么办法让它看起来更“手绘”?而不是在点之间来回曲折?

这是我现在使用的代码:

x <- c(.55, .65, .75, .725, .825, .925)
y <- c(.6, .75, .9, .65, .8, .95)
plot(x, y, xlim=c(.5, 1), ylim=c(.5, 1))
lines( smooth.spline(x, y, spar=.01), col='red' )

【问题讨论】:

  • “手绘” - 使用 catmull-rom 样条线。

标签: r polynomial-math spline


【解决方案1】:

你可以使用xspline

xspline(x,y, shape= -1 )

将绘制通过具有曲率的点的线,更改 shape 参数将改变曲线的数量(如果需要,甚至会遗漏少量中间点)。

【讨论】:

  • 非常感谢,格雷格!这正是我一直在寻找的。 :)
【解决方案2】:

ggplot2怎么样

require(ggplot2)
qplot(x,y,geom="smooth")

【讨论】:

  • 谢谢,这正是我想要的样子。不过,有没有办法在没有 ggplot2 的情况下获得这条曲线?因为我正在制作的情节只是 2x3 网格中的一个情节,我想让它们都“看起来一样”。
猜你喜欢
  • 2017-01-02
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多