Передача файла из скрипта bash в скрипт gnuplot

Я новичок в gnuplot, и мне очень сложно передавать свои аргументы, теперь у меня есть этот простой сценарий bash и сценарий gnuplot.

в скрипте bash plot.sh Я должен изменить свой файл, затем отправить его в сценарий gnuplot для построения графика ИЛИ я могу изменить свой файл и просто отправить параметр (число, переданное из другого сценария $1) в сценарий gnuplot, который определяет, какой файл должен быть нанесен, проблема в том, что ни один из двух способов не работает, я, кажется, не понимаю это правильно! любая помощь?

вот мой скрипт bash plot.sh

#!/bin/bash

sed -i 's/ns/;/g' /dev/shm/waitingTime$1.txt
gnuplot -e "filename='/dev/shm/waitingTime$1'" file.gnuplot

А вот и мой скрипт gnuplot с именем file.gnuplot

#!/home/yas/file.gnuplot

set xlabel "start"    
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot<"filename"> using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output '/dev/shm/TT.pdf'
pause -1

конец файла.gnuplot

1 ответ

Если я правильно понимаю, вы хотите, чтобы график отображался на дисплее, а затем имел копию в файле PDF /dev/shm/TT.pdf,

Я вижу две проблемы здесь:

  1. Инструкция по сюжету --- вы храните имя файла в filenameтак что айпу надо просто сказать

    plot filename  using 1:2 w points title "tests"
    

    без <"... вещи.

  2. Если вы хотите файл PDF, вы должны добавить replot после смены терминала и выходного файла (двойную проверку вы можете записать в целевой каталог).

Я создал файл data.dat и файл file.gnuplot:

set xlabel "start"    
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot filename   using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output 'TT.pdf'
replot
pause -1

И называя это с:

gnuplot -e "filename='data.dat'" file.gnuplot 

У меня есть выход:

введите описание здесь

... и соответствующий TT.pdf файл.

Кстати, вместо pause в конце я нахожу гораздо лучше добавить

set terminal wxt persist 

в начале и уберите паузу. Сценарий завершится естественным образом, и окно с графиком останется на месте, пока вы не отклоните его.

Другие вопросы по тегам