2012-05-30 62 views
0

我有一個4列的tabla。gnuplot max,列中差異的最小值

我需要gnuplot的,得到列3和4(3-4)之間的差別 MAX和MIN值。我已經試過了通常的程序,但它不工作:

plot 'datafile' using 1:2:(\$3-\$4) with image 
max=GPVAL_DATA_Z_MAX 
min=GPVAL_DATA_Z_MIN 

但它確實工作如果我只是用,例如:

plot 'datafile' using 1:(\$3-\$4) 
max=GPVAL_DATA_Y_MAX 
min=GPVAL_DATA_Y_MIN 

也就意味着問題與žGPVAL變量和with image選項。

我無法使用我的解決方法,因爲在我使用plot命令再次創建實際情節之後,它在我的實際圖表後留下了可怕的圖表。

我該如何解決這個問題?

+0

這很奇怪,我會試着去查看它,但看起來你已經有了一個解決方法。繪製1:($ 3- $ 4)'並獲得你想要的最大值和最小值,然後使用所有三個維度重新繪製。一個問題:爲什麼你的腳本中有'\'字符?這不是必要的。 – andyras

+0

我的解決方法的問題是它會產生一個令人討厭的情節,而不是我想要的情節。如果我使用這個解決方法,那麼在我製作實際情節之後,那些令人討厭的情節會在後面看到。 你是什麼意思? – Gabriel

+0

我的意思是反斜槓 - 不知道爲什麼它沒有出現。你可以使用的一個技巧是'設置輸出\ dev \ null'(或其他一些垃圾文件),創建第一個splot,然後將輸出更改爲實際文件,然後製作你的圖。這樣你就不會有背景中的第一個情節。 – andyras

回答

1

問題來自使用plot命令而不是splotplot命令只知道兩個維度。如果你嘗試

set terminal postscript enhanced color 
set output '/dev/null' 
splot 'datafile' using 1:2:($3-$4) 
max=GPVAL_DATA_Z_MAX 
min=GPVAL_DATA_Z_MIN 
set output 'output.eps' 
plot 'datafile' using 1:($3-$4) with image 

你應該能夠得到你需要的值。設置output '\dev\null'可讓您在不實際繪製數據的情況下獲取這些值。

+0

我只想要兩個維度。 'Z'值用於彩條。我正在使用的真正命令是:'plot'datafile'using 1:2:(\ $ 3 - \ $ 4)with image' – Gabriel

+0

我已經解釋了這個問題好一點。 – Gabriel

+0

我明白了。我已經更新了一些答案。 – andyras