2014-07-13 63 views
1

當我試圖寫一個shell腳本,如參數gnuplot的腳本

gnuplot 
cd '/home/cagirici/test' 
plot "case1.test" with linespoints 

sudo運行它,腳本運行的gnuplot後停止。

在每個.test文件中,我有12列。我不會一次將它們全部繪製出來,而是選擇要繪製的內容。例如,如果我選擇繪製success percentage,則應繪製1:21:8。但是,如果我選擇error percentage,應該積1:41:10(它基本上是i:(i+6)。)

我需要編寫一個腳本,有兩個輸入端:1)文件名二)什麼陰謀。

請注意,我也想選擇線型,點型和輸出外殼。 (如果有配置將特定行和點類型設置爲默認值,請告訴我這個)

我可以在Ubuntu中編寫此腳本嗎?或者我應該使用不同的方法。

我的腳本看起來像

case "$2" in 
("success percentage") plot "$1" using 1:2, plot "$1" using 1:8 
("error percentage") plot "$1" using 1:4, plot "$1" using 1:10 

回答

2

您可以通過創建變量的Gnuplot腳本,然後在運行時在命令行或您的bash腳本值傳遞到這些變量,使這項工作。

讓我們調用的Gnuplot腳本Myscript.gp

set terminal pngcairo 
set output 'graph.png' 

plot file u x:y w linespoints 

這裏filex:y可當你從你的bash腳本調用的Gnuplot被varried。到Myscript.gp一個可能調用如下:

gnuplot -e "x=1;y=2;file = \"mydata.dat\"" Myscript.gp 

在你的bash腳本,你提供這可能看起來像片段:

case "$2" in 
("success percentage") gnuplot -e "x=1; y=2; file = \"$1\"" Myscript.gp 

在下面,我還提供了一個虛擬的mydata.dat文件,你可以用來嘗試事情。

1.54 23.66 43.66 
1.75 26.25 46.25 
1.92 30.20 40.20 
2.08 34.46 44.46 
2.44 42.08 42.08 
2.78 46.81 46.81 
3.03 51.10 41.10 
3.70 52.99 42.99 
4.17 56.15 46.15 
4.76 59.34 49.34 

如果您在計算列號(xy)在您的bash腳本,那麼你還可以使用繪圖命令中的變量。

gnuplot -e "x=$x;y=$y;file = \"mydata.dat\"" Myscript.gp 

下面我將展示使用一次輸出:

gnuplot -e "x=1;y=2;file = \"mydata.dat\"" Myscript.gp 

,一旦

gnuplot -e "x=1;y=3;file = \"mydata.dat\"" Myscript.gp 

enter image description here

0

我已經遇到了類似的問題2年前,那麼我的高級團隊成員決定編寫一個繪圖工具,使用簡單的csv和繪圖規範a第二,如果需要,您可以與我聯繫工具將繪製的圖即可,

最初,它是專爲Linux上的SAR數據,因此得名RSAR但總的來說它是一個CSV繪圖儀。) [email protected]