我想在gnuplot中绘制一些数据。为了能够绘制它们,我写了一个名为" plot_A.gp"的脚本。在其中我设置了轴值,标签和输出端子 为了不为每个数据文件修改它,我想知道是否有可能使脚本能够处理拖放文件。
作为示例脚本:
set xrange [0 to 100]
set xlabel "x-axis"
set ylabel "y-axis"
set terminal eps
set output %1.pdf
plot %1 using 1:($2*$2) with lines
如何将%1
设置为刚刚放入脚本的文件名?
答案 0 :(得分:1)
请在gnuplot提示符下使用call
而不是load
执行脚本。 call
最多接受10个参数。在gnuplot 5.0之前,这些参数称为$ 0,$ 1,...,$ 9。
在gnuplot 4.6中,您的脚本将如下所示:
datafile="$0"
outputfile="$0".".pdf"
set xrange [0 to 100]
set xlabel "x-axis"
set ylabel "y-axis"
plot "hello" using 1:($$2*$$2) with lines
set terminal eps
set output outputfile
replot
set terminal wxt
set output
由于$2
引用了脚本的第三个参数,因此要访问第二列,请使用$$2
。或者,您也可以使用1:(column(2)*column(2))
。
你会这样称呼它。
gnuplot> call "plot_A.gp" "hello"
这将绘制文件中的数据"你好"并创建一个名为" hello.pdf"的pdf。我还将终端重置为wxt
,作为最佳做法。
从gnuplot 5.0开始,不推荐使用$ 0,$ 1等。相反,你应该使用特殊变量ARG0,ARG2,...,ARG9。我无法访问gnuplot 5.0。但我认为您只需要使用ARG0
代替$0
。请您参考How to pass command line argument to gnuplot?