2012-06-04 43 views
11

我有一個兩列文件,它有1000000個條目,即1000000行,但是我不想繪製所有數據,我只想繪製每100行的點數?如何在gnuplot中做到這一點?另外,是否可以指定一些特定的行來繪製在gnuplot?如何繪製GNUplot中的特定行

+0

您可以使用AWK的gnuplot的。很高興解釋,如果你更詳細地解釋你的問題。 –

回答

24

此處至少有兩個選項。首先,對於help datafile every

plot 'datafile' every 100 using 1:2 

檢查出的文檔的另一個選擇是結合使用僞列0(help datafile using pseudo)與三元運算符(help ternary)和知識GNUPLOT默默地忽略未定義號碼來篩選線:

plot 'datafile' u (((int($0)%100)==0)? $1 : 1/0):2 

可以賺這點比較容易理解,如果你使用宏:

set macro 
line_number='int($0)' 
plot 'datafile' u (((@line_number % 100) == 0) ? $1 : 1/0) : 2 

請注意,我只包括第二個,因爲您可以(原則上)使用它從數據文件中選擇非常奇怪的行號(例如, 1,100,1000,10000),你無法使用每個 - 例如

plot 'datafile' u (((@line_number == 1 || @line_number == 100 || @line_number == 1000) $1:1/0)):2 

也看到了答案this question

+0

這個答案太有幫助了,thx! – EverythingRightPlace

+0

$ 0已經是一個整數,不需要int()它。 – Karl