我有一個應該使用gnuplot
繪製的.csv數據文件。 讓我們假設該文件的格式如下:Gnuplot:爲什麼在我的數據文件中自動忽略第一行
A;B;C;D;E;F
1;1;2;1;1;1
2;3;3;3;5;6
3;4;1;1;1;4
第一列(列A)爲X軸,列B至F每個人都應該被繪製成自己lineplot(是的,我知道,太多的行一塊地塊內的情節可能看起來很糟糕,但只是爲了得到一個想法)。這裏一個MCVE:
set terminal png size 1000,500
set datafile separator ";" # CSV file is seperated with ;
plot \
'C://tmp/test.csv' using 1:2 with lines title "B",\
'C://tmp/test.csv' using 1:3 with lines title "C",\
'C://tmp/test.csv' using 1:4 with lines title "D",\
'C://tmp/test.csv' using 1:5 with lines title "E",\
'C://tmp/test.csv' using 1:6 with lines title "F"
我讀到忽略數據文件中的第一行,我將不得不評論它,啓動符合#
,像#A;B;C;D;E;F
;或者使用plot <filename> every ::1
來忽略第一行,這意味着我必須在上面的腳本中包含every ::1
5次,如解釋in this link所述。
儘管如此,上面的腳本運行良好並創建了一個有效的.png,自動忽略了.csv中的第一行。
我知道「爲什麼打擾,如果它無論如何工作」?但我總是想知道發生了什麼,所以:爲什麼會發生這種情況?在gnuplot中有什麼改變,以便自動檢測標題行,並且不再需要在.csv中註釋標題行?
感謝您的解釋。我不知道自動忽略不可繪製的值,我認爲如果讀取了一些無效的數據,就會打印一個錯誤。我只是在.csv中做了一些不可測的值的測試(例如,用一個字母替換某個數字),所有內容都與您的解釋一致。 –
有條件地忽略它們(例如'NaN')是非常有用的,也是一種常用技術。它對無效值不會產生任何錯誤,如果忽略文件中的行(或不存在),則只會發出警告。所以,如果你確實忽略了這樣的目的,請注意gnuplot的stderr輸出。 – e0k