1

我有几个为我绘制图表的 gnuplot 脚本。我需要在命令行为每个gnuplot脚本设置相同的xrange值。我不想单独打开每一个。

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 运行所有脚本。谢谢

4

3 回答 3

1

我建议将范围命令放在一个单独的文件中,并在命令中调用范围文件和绘图文件。您甚至可以拥有一系列范围文件,并在绘图时选择您想要的一个。

 gnuplot setrange_1.gp tlakD.gp

这里没有必要使用-e构造。gnuplot 将按照给定的顺序执行命令行中列出的每个文件,就好像它们在执行之前被连接成一个更大的文件一样。

于 2020-05-06T17:06:03.670 回答
0

我创建了一个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"

在此处输入图像描述

于 2020-05-06T16:54:10.880 回答
0

您似乎无法[...:...]在一个变量中指定范围,但您可以在 2 个单独的字符串变量中执行此操作:

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

set xrange [a:b]
于 2020-05-06T15:29:26.640 回答