使用变量在循环时定义图例

时间:2014-01-09 14:24:33

标签: plot gnuplot legend

关于我的previous question我按照Gnuplot脚本(v4.6补丁级别3)构建:

set macros
set term x11 1
plot '< stuff.pl' u 2:3 t "graph for variable 1" lw 2

do for [i=2:5]{

        var=system(sprintf("stuff.pl | awk -F'\t' 'NR == 1 {print $%f}'",2*i+1))
        print var

        xCol=2*i; yCol=2*i+1

        set term x11 1
        replot '< stuff.pl' u xCol:yCol t "graph for ".var lw 2
        pause 3
}

我的目标是使用不同的列(通过脚本 stuff.pl 写入STDOUT)并将它们绘制到一个图形并使用标题中的名称标题图表。 stuff.pl 的输出如下所示:

#Files  a    var1      b    var2      c    var3      d    var4      e    var5
5       1    0.231     0    1.426     3    1.624     0    0.227     9    5.322

我尝试了很多,在this answer的帮助下,我得到了上面显示的var的定义。

print var显示正确的值 var1 var2 ,...但我的图例不正确。再次看来,var中使用的变量replot未重置/更新。

1 个答案:

答案 0 :(得分:1)

我试了一下,但也无法让它工作。

这是一个有点不同的提议,它不使用replot,而是在plot命令中进行交互。使用head提取文件的完整第一行,稍后使用word函数选择相应的字段:

set term x11 1
header = system('stuff.pl | head -1')
plot for [i=1:5] '< stuff.pl' using (column(2*i)):(column(2*i+1)) title 'graph for variable '.word(header, 2*i+1)