从Gnuplot中的变量生成标题

时间:2014-12-11 15:27:05

标签: gnuplot

我正在尝试在Gnuplot中自动生成标题。我有一个数组(titleprefix)和另一组变量(a1,a2,a3 ......),标题是前缀后跟斜率(a' s)。我试过这个:

title(n) = sprintf("word(titleprefix,n).sprintf(\" Slope = %.3f\",%f)",a."n"+0)

当然没有用。错误是:

  

在预期数字表达式的位置找到非数字字符串。

我知道如何解决这个问题吗?

最后,我想绘制几条曲线:

plot f1 w l t title(1), \
     f2 w l t title(2), \
     f3 w l t title(3)

1 个答案:

答案 0 :(得分:0)

执行此类操作的一个选项是在此类函数中构建完整的set title命令,然后eval。{/ p>

在你的情况下,它需要一些大脑扭曲来使引号正确,以便变量名称是正确的:

titleprefix="first second third"
a1 = 1.111
a2 = 2.222
a3 = 3.333
title(n) = 'set title "'.word(titleprefix, n).': ".sprintf("Slope = %.3f", a'.n.')'

set multiplot layout 1,3
eval(title(1))
plot x
eval(title(2))
plot 2*x
eval(title(3))
plot 3*x
unset multiplot

enter image description here

或者,您可以在定义或计算变量时构造格式化变量值的单词列表。

a1 = 1.111111
a2 = 2.222222
a3 = 3.333333
tmp = 'a = ""'
do for [i=1:3] { tmp = tmp.".sprintf('%.3f ', a".i.")" }
eval(tmp)

plot for [i=1:3] i*x title word(a, i)

enter image description here