关于我的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
未重置/更新。
答案 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)