Gnuplot 有条件地执行plot命令

Gnuplot 有条件地执行plot命令,gnuplot,Gnuplot,我正在使用gnuplot创建一个结构相当简单的文件的图形。特别是,该文件包含8列,前4列描述测量值,后4列描述预测值。我想创建两个图,一个只包含测量值,另一个包含两者 由于我的gnuplot脚本相当长,我想引入一个变量来设置是否应该包含预测值的标志。我想使用不同的线型、轴和标签,因此无法使用该方法 以下是我目前使用的: plot 'file.txt' using 2:xticlabels(1) title "Val1 (Measured)" with lines axes x1y1, '' us

我正在使用gnuplot创建一个结构相当简单的文件的图形。特别是,该文件包含8列,前4列描述测量值,后4列描述预测值。我想创建两个图,一个只包含测量值,另一个包含两者

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

以下是我目前使用的:

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但这不起作用

谢谢大家!

这可以通过replot命令完成:

用四个图绘制一个图形

在您的情况下,以下各项应起作用:

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
}
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
}