我想以编程方式生成gnuplot plot命令,如:
plotline = sprintf("'datafile1.dat' using %d:3 with points, '%s' using %d:3 with points",i,targfile,i)
plot plotline
第二行中的'plotline'扩展为生成并执行完整命令,如:
plot 'datafile1.dat' using 8:3 with points, 'datafile2.dat' using 8:3 with points
我想这样做是为了在终端中回显'plotline',因此确切地确定在循环浏览gnuplot脚本中的循环内的一组列/数据文件时显示的是什么。
是否/这是什么语法,或者你可以建议另一种方法来报告绘图命令执行(不分成绘图命令和一组单独的命令来报告当前变量状态)。
谢谢!
答案 0 :(得分:2)
为了从某些字符串构造这样的绘图命令,您可以使用eval
来执行字符串中包含的命令:
plotline = 'x title "mytitle"'
eval('plot '.plotline)
或者,您可以使用set macros
:
set macros
plotline = 'x title "mytitle"'
plot @plotline
在执行命令之前,这会将@plotline
替换为字符串变量plotline
的内容。使用plot plotline
将plotline
的内容解释为文件名。请注意,从版本4.6开始,宏在循环中无法正常工作,但eval
工作正常。
顺便说一句:如果你没有指定自己的标题,那么实际的情节陈述会写在情节图例中。但是这不能写入终端输出。