在r中的散点图中添加中间“最佳拟合线”

时间:2018-02-28 18:06:46

标签: r curve-fitting scatter-plot

我想在散点图中添加一个最佳拟合的经验线,该散点图基于x的范围的中值y,例如,在x = 0.105时,x是该范围内x的中值y的y线0.100至0.110,在x = 0.115处,x的中值y的y线在0.110至0.120的范围内等。这些y线点将连接起来。这些x只是为了说明,我想在他们的选择上灵活。 (我不想要参数拟合,谢谢)

这模拟了一些数据:

x<-0.1+runif(n=1000,min=0,max=1)
y<-1/x+runif(n=1000,min=0,max=1)*(1-x)*5
plot(x,y)

这是橙色中线的模拟。

mock up of desired plot

2 个答案:

答案 0 :(得分:2)

我会将lowess平滑视为选项。查看f选项如何“平滑”&#39;你希望它是。我在下面复制了一些文档。

  

选项f更平滑的范围。这给出了点的比例   影响每个值平滑的图。更大的值给出   更顺畅。

x<-0.1+runif(n=1000,min=0,max=1)
    y<-1/x+runif(n=1000,min=0,max=1)*(1-x)*5    
    plot(x, y)
    lines(lowess(x, y), col=2)
    lines(lowess(x, y, f=.2), col=3)

答案 1 :(得分:1)

完成plot()功能后,请尝试以下操作:

lines( x = lowess( x = x, y = y ), col = "darkgoldenrod2", lwd = 4 )

来自?lowess

  

lowess返回一个包含组件x和y的列表,它们给出了平滑的坐标。可以使用函数lines()将平滑点添加到原始点的图中。