Как установить xrange в командной строке в gnuplot - PullRequest
1 голос
/ 06 мая 2020

У меня есть несколько скриптов gnuplot, которые рисуют для меня графики. Мне нужно установить одинаковые значения xrange в командной строке для всех скриптов gnuplot. Я не хочу открывать каждый из них по отдельности.

Код в скриптах gnuplot (имя: tlakD.gnuplot):

set xdata time 
set timefmt "%m/%d/%Y %H:%M" # specify time string format
set xrange datum
set format x "%d/%m/%Y "

Попытка командной строки: gnuplot -e "datum='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot

Вторая попытка: я удалил xrange.

Код в скриптах gnuplot (имя: tlakD.gnuplot):

set xdata time 
set timefmt "%m/%d/%Y %H:%M" # specify time string format
set format x "%d/%m/%Y "

Попытка командной строки: gnuplot -e "xrange='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot

идея того, что я хочу: gnuplot -e "xrange='["1/1/19 12:00":"1/5/19 11:59"]'" tlakD.gnuplot ; vlhkosD.gnuplot; teplotaD.gnuplo and many more gnuplots scripts Я хочу запускать все сценарии с одним и тем же xrange. Спасибо

Ответы [ 3 ]

1 голос
/ 06 мая 2020

Я предлагаю поместить команду диапазона в отдельный файл и вызвать в команде как файл диапазона, так и файл графика. Вы даже можете иметь коллекцию файлов диапазонов и выбирать тот, который вам нужен, во время построения.

 gnuplot setrange_1.gp tlakD.gp

Здесь нет необходимости использовать конструкцию -e. gnuplot выполнит каждый файл, указанный в командной строке, в указанном порядке, как если бы они были объединены в один более крупный файл перед выполнением.

0 голосов
/ 06 мая 2020

Я создал файл data.txt вроде этого:

"2/1/2019 10:00:00" 4
"3/1/2019 10:00:00" 8
"4/1/2019 10:00:00" 16
"5/1/2019 10:00:00" 32

Команды, которые я выполняю внутри gnuplot, будут:

set timefmt '"%d/%m/%Y %H:%M:%S"'
set xdata time
set xrange ['"1/1/2019 12:00"':'"1/5/2019 11:59"']
plot "data.txt" using 1:2

Итак, это означает мой bash командная строка будет выглядеть так:

gnuplot -p \
        -e "set timefmt '\"%d/%m/%Y %H:%M:%S\"'"                    \
        -e "set xdata time"                                         \
        -e "set xrange ['\"1/1/2019 12:00\"':'\"5/1/2019 11:59\"']" \
        -e "plot \"data.txt\" using 1:2"

enter image description here

0 голосов
/ 06 мая 2020

Кажется, вы не можете указать диапазон [...:...] в одной переменной, но вы можете сделать это в двух отдельных строковых переменных:

gnuplot  -e a='"1/1/19 12:00"' -e b='"1/5/19 11:59]"'

set xrange [a:b]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...