为图形刻度定义和使用向量

Define and use vector for graph ticks

我喜欢将我能存储的所有内容都存储在一个变量中,因为我制作的每个 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 替换为其设置的向量,一切都会按预期进行。

对于此类用例,gnuplot 具有宏:

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

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

一起使用

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

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

set ytic 0, 0.002, 0.012