Gnuplot:绘制残差图

3
我正尝试绘制最小二乘法的可视化。最终的结果应该像这样: Resudual
目前,我已经获得了数据点和拟合曲线(在我的情况下为一条直线,称为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)  

到目前为止,我只能使用XX获得残差信号。

(请将XX替换为具体的工具或方法名称,以便更准确地翻译。)
plot 'data.txt' with points title 'data',  '' using 1:($2 - f($1)) w impulse, f(x)

但是,像这样从y=0开始并向上下移动的线条,并不在拟合线f(x)和数据点之间。

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)) 与残差绘制时使用相同的样式。


第一部分正是我需要的,谢谢!对于其他遇到类似问题的人来说,有一个附注:我必须使用with points 4更改点的样式,以使点与残差更易于区分。 - undefined
@albifant -- 我以为第一个是你想要的,但我也包含了第二个,因为它看起来很接近,可能对其他人有帮助。你可能需要更明确地说明你在改变点的什么。你可以改变点的大小(ps)或者点的类型 (pt):... with points ps 2 pt 4 - undefined
我本以为当你省略pt,只写成with points 4时,它会像隐式的with points pt 4一样运行,但实际上并不完全相同。最终的点样式确实是相同的,但颜色却不同。所以两种版本都可以使用,但我个人认为with points pt 4更加优雅。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接