有条件地执行plot命令

时间:2014-02-07 09:54:45

标签: gnuplot

我正在使用gnuplot来创建一个结构简单的文件的图形。特别是,该文件包含8列,前4列描述“测量”值,第4列描述“预测”值。我想创建两个图,一个仅包含测量值,一个包含两个。

由于我的gnuplot脚本相当长,我想引入一个变量来设置标志是否应该包含预测值。我想使用不同的线型,轴和标签,因此不能使用“using”方法。

这是我到目前为止使用的内容:

plot 'file.txt' using 2:xticlabels(1) title "Val1 (Measured)" with
lines axes x1y1, '' using 3:xticlabels(1) title "Val2 (Measured)"
with linespoints axes x1y2;

if (settingCompareToAggretagion == 1)
   plot 'file.txt' using 4:xticlabels(1) title "Val1 (Aggregated)" with lines
   axes x1y1, '' using 5:xticlabels(1) title "Val2" with linespoints axes x1y2;

显然有一个问题,我得到两个情节而不是一个。我还尝试使用内联if条件(bool.exrp. ? x : y)将第二组绘图“附加”到命令,但这不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

可以使用replot命令完成:

plot x, x**2
replot x+5, x**2 + 5

绘制带有四个图的单个图。

在您的情况下,以下情况应该有效:

plot 'file.txt' u 2:xtic(1) t "Val1 (Measured)" w l,\
     '' u 3 t "Val2 (Measured)" w lp axes x1y2

if (settingCompareToAggregation == 1) {
    replot 'file.txt' u 4 t "Val1 (Aggregated)" w l,\
           '' u 5 t "Val2 (Aggregated)" w lp axes x1y2
}