1

我喜欢将我能做的所有东西都存储在一个变量中,因为我制作的每个 gnuplot 脚本都会一次生成数十个图,并且它使事情更容易跟踪。这是一个图的示例(感兴趣的变量:)ytics

# Setup style
set terminal pngcairo dashed
unset key
set style line 1 pointtype 7 pointsize 0.3 linecolor rgb "black"

# Setup the plots' ytics
ytics_H2 = (0,0.002,0.004,0.006,0.008,0.010,0.012);

# Store the range for each variable
min_T  = 200; max_T  = 1800;
min_H2 = 0;   max_H2 = 0.012;



# Plot
set output 'my_output_H2.png'
set ytics ytics_H2
set xrange [min_T :max_T ]
set yrange [min_H2:max_H2]
plot 'scatter.dat' using 1:2 with points linestyle 1

结果如下: 在此处输入图像描述

如您所见,仅打印最后一个刻度。ytics如果我用它设置的向量替换变量,一切都会按预期工作。

4

2 回答 2

1

对于这样的用例,gnuplot 有宏:

set macros # necessary only for v < 5.0
ytics = "(1, 5, 8)"
set ytics @ytics
plot x

使用 gnuplot 5.0 的脚本输出

为了使用宏,您必须定义一个字符串变量,其中包含您稍后要使用的命令部分,此处为ytics = "(1, 5, 8)"。稍后您可以将其内容与@ytics.

这里的重要事实是,gnuplot 首先替换@ytics为字符串变量的内容ytics,即扩展set ytics @yticsset ytics (1, 5, 5)然后才执行整个命令。

于 2015-10-22T12:29:35.557 回答
0

因为您的间隔是固定的并且相同,您也可以使用start, incr, end形式:

set ytic 0, 0.002, 0.012
于 2015-10-22T13:10:25.930 回答