2013-01-09 119 views
1

我想繪製最小二乘法的可視化。最後,它應該是這樣的:http://upload.wikimedia.org/wikipedia/commons/1/17/MDKQ1.svgGnuplot:繪製殘差

現在我有數據點,我有擬合曲線(我的情況是一條直線,稱爲f(x))。我缺少的是殘差(在鏈接中殘差是綠線)。 含義:我想從垂直於擬合線的每個數據點開始畫線。

我的data.txt看起來像這樣(shortend)

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)和數據點之間。

回答

2

我認爲你正在尋找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) )以與繪製殘差相同的樣式繪製。

+0

第一部分正是我所期待的,謝謝!對於其他類似問題的附註,我必須使用......'...與點4 ...來改變點的樣式......以使點更好地與殘差區分開來。 – albifant

+0

@albifant - 我認爲第一個是你想要的,但我包括第二個,因爲它看起來很接近,可能會幫助其他人。你可能想要更明確地說明你用點來改變什麼。你可以改變點的大小('ps')或點的類型('pt'):...'帶點ps 2 pt 4' – mgilson

+0

我的印象是,當你離開'pt'並且只是爲了'點4',它會表現得像一個隱含的點'點4',但它不完全相同。結果點樣式實際上是相同的,但它不是。所以這兩個版本都可以工作,'帶點4'更加優雅。 – albifant