2015-12-03 28 views
1

我試圖從多個數據文件的散點圖。 我想通過繪製線性擬合,並且想要將相關係數寫入繪圖。 這是我想爲這些數據文件中的某些行執行的操作。 這是我的線性擬合:多個文件的相關係數

fit [0:1] [0:1000] f(x) '< for i in data_1.csv data_2 data_3.csv \ 
data_4.csv data_5.csv; do cat "$i"; echo; done' every ::121::361 using 5:27 via a,b 

這個工程.... 現在這將是巨大的,以獲得相關係數以同樣的方式...

stats '< for i in data_1.csv data_2 data_3.csv \ 
data_4.csv data_5.csv; do cat "$i"; echo; done' every ::121::361 using 5:27 "Correlation C." 

這不起作用 我得到這個錯誤:

format must have 1-7 conversions of type double (%lf) 

一些更新:

這是輸出爲我適合

Final set of parameters   Asymptotic Standard Error 
=======================   ========================== 
a    = -410.518   +/- 32.5   (7.918%) 
b    = 746.018   +/- 5.448  (0.7302%) 

correlation matrix of the fit parameters: 
       a  b  
a    1.000 
b    -0.695 1.000 

我不知道的是,輸出的作品與我的bash腳本通過多個文件曲線擬合。 -410.518的斜率看起來很奇怪。

更新的問題:這個擬合工作在gnuplot與多個文件?實際劇情看起來不錯,但爲什麼輸出中會出現如此奇怪的值?

回答

1

這是一個簡單的語法錯誤,從stats命令刪除"Correlation C.",或使用name給其他的前綴比STATS_爲生成的變量:

stats '...' name 'CorrelationC_' 
show variables CorrelationC_ 

而且,您可以通過使用簡化您的來電例如awk合併所有文件(也可以工作,如果數據文件沒有在他們的最後一行新行,相反,cat data_*.csv):

cmd = '< awk "//" data_*.csv' 
stats cmd every ::121::361 using 5:27 
... 
plot cmd ... 
+0

,工程謝謝....我想用' 「相關性C.」我可以命名相關係數並將其繪製在圖的某處...... –

+0

和我的其他問題?斜坡是-410.518是否是一個斜坡的有價值的數字? –

+1

您必須使用'stats'的'name'選項爲生成的變量選擇一個前綴:'stats ... name'CorrelationC''。請注意,由於目標是變量名稱,因此名稱中不能包含空格或標點符號。用'show variables CorrelationC'你可以看到所有已經生成的變量。如果你的斜率值是正確的,我不知道,因爲我不知道你的數據 – Christoph