2014-02-07 60 views
1

我正在使用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; 

显然有,我得到两个地块,但一个问题。我还尝试用附带条件(bool.exrp. ? x : y)将第二组图形“附加”到命令中,但这不起作用。

谢谢!

回答

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 
}