2

我正在尝试绘制最小二乘法的可视化。最后它应该是这样的: 剩余的

现在我有数据点和拟合曲线(在我的例子中是一条直线,称为 f(x))。我缺少的是残差(在链接中,残差是绿线)。含义:我想从每个数据点开始画线,垂直于拟合线。

我的 data.txt 看起来像这样(缩写)

1, 3
2, 4
3, 6
4, 3

我的 gnuplot 命令是:

f(x) = a*x +b  + 1e-9
fit f(x) 'data.txt' u 1:2  via a, b
plot 'data.txt' with points title 'data',  f(x)  

到目前为止,我只设法将残差作为脉冲使用

plot 'data.txt' with points title 'data',  '' using 1:($2 - f($1)) w impulse, f(x)

但就像那样,从 y=0 开始,向上向下,它们不在拟合线 f(x) 和数据点之间。

4

1 回答 1

3

我想你在这里寻找errorbars

 plot 'data.txt' with points title 'data',\
      f(x) notitle,\
      'data.txt' u ($1):(f($1)):(f($1)):2 w yerrorbars title 'residuals'

还有errorlines你可以使用基本相同的样式:

 plot 'data.txt' with points title 'data',\
      'data.txt' u ($1):(f($1)):(f($1)):2 w yerrorlines title 'residuals'

但在这种情况下,线 ( f(x)) 的绘制方式与绘制残差的方式相同。

于 2013-01-09T12:30:37.497 回答