2014-12-03 4 views
-1

У меня есть сценарий GNUplot в .gp-файле.Как указать данные в терминале - GNUplot

set terminal pngcairo enhanced size 5000,500 font 'DejaVuSerifCondensed,11' rounded; 
set output 'acc_vrecko_predne.png' 
set encoding iso_8859_2 

set yrange [-15:15] 
set xrange [0:1261] 
set xtics 20 


set title 'dáta accelerometer - predne vrecko ' font 'DejaVuSerifCondensed-Bold,12' 

set samples 7000 

set style line 1 lt 1 lw 0.5 lc rgb "red" 
set style line 2 lt 1 lw 0.5 lc rgb "blue" 
set style line 3 lt 1 lw 1 lc rgb "green" 


set datafile separator "|" 


plot \ 
\ 
'data/vrecko_acc.txt' u 0:2 sm cs w l ls 1 t 'X-suradnice',\ 
'data/vrecko_acc.txt' u 0:3 sm cs w l ls 2 t 'Y-suradnice',\ 
'data/vrecko_acc.txt' u 0:4 sm cs w l ls 3 t 'Z-suradnice' 

reset 

Есть ли способ указать путь данных и имя файла в терминале и запустить скрипт из него? Должен ли я что-то изменить в моем .gpfile?

THX

+0

Нет необходимости задавать подобный вопрос снова. Тем не менее, ваш вопрос - ответ в [Как передать аргумент командной строки gnuplot?] (Http://stackoverflow.com/q/12328603/2604213). – Christoph

ответ

0

Это было давно последний раз, когда я использовал его. В любом случае, я думаю, он должен быть в состоянии работать нормально с стандартным вводом-файлом, и вы можете сделать замену на лета SED или обычной переменной оболочку SUBST, как это:

$> x=uu; sort -u<<EOF 
> a 
> gg 
> ${x} 
> yy 
> dd 
> EOF 
a 
dd 
gg 
uu 
yy 

если вы кладете GNUPLOT скрипт в сценарий оболочки и будет использовать технику «Здесь».

Создайте файл для примера my_script.sh со следующим содержанием:

#!/bin/sh 

file1="data/vrecko_acc.txt" 
file2="data/vrecko_acc.txt" 
file3="data/vrecko_acc.txt" 
# or uncomment and use this variant to pass params as args like this: 
# sh my_script.sh data/acc1.txt data/acc2.txt data/acc3.txt 

# file1="${1}" 
# file2="${2}" 
# file3="${3}" 

gnuplot - <<EOF 
<here goes you file, do not forget to put '\'(back slash) before any $ sign> 
'${file1}' u 0:2 sm cs w l ls 1 t 'X-suradnice',\ 
'${file2}' u 0:3 sm cs w l ls 2 t 'Y-suradnice',\ 
'${file3}' u 0:4 sm cs w l ls 3 t 'Z-suradnice' 

reset 
EOF 
+0

Хммм Я новичок в Linux, я не понимаю: D вы можете это объяснить? – Mirko

+0

См. Обновление. –

Смежные вопросы