Gnuplot标题 - 使用sprintf在标题中使用变量

时间:2016-02-03 12:56:47

标签: gnuplot

我一直在对gnuplot做一些沉重的策划,但我对它很新,我希望你们能告诉我。我的问题如下:
我想在同一个图表上绘制几条曲线,我希望我的.gp脚本巧妙地为这些曲线赋予标题。每条曲线都是以特定频率激发的音叉的声谱。我的脚本引入了包含所述频率值的向量u(n),而titre(n)是曲线号n的标题。事实上它不起作用,我的猜测是因为滴度(n)形成不良。

u(n)=( 865, 860, 855, 850, 441, 439, 437, 435, 433, 431, 429, 427, 425, 423, 421 )
titre(n) = sprintf("Excitation à %d Hz", u(n))
plot for [n=2:15] 'batt.res' u 1:n w l lw 1 lc palette frac n/15.0 title titre(n)

而不是我想要的,所有的标题都是“激励421赫兹”。每条曲线的频率都保持在421 Hz。我该如何解决这个问题?

所有帮助表示赞赏:)

2 个答案:

答案 0 :(得分:2)

Gnuplot还没有数组或列表数据结构。因此,对于这种迭代,您必须使用包含以空格分隔的标签的字符串:

u = "865 860 855 850 441 439 437 435 433 431 429 427 425 423 421"
titre(n) = sprintf("Excitation à %s Hz", word(u, n))
plot for [n=1:15] 'batt.res' u 1:n+1 w l lw 1 lc palette frac n/15.0 title titre(n)

答案 1 :(得分:0)

要设置标题(此线程名称暗示),也可以使用sprintf。 下面是一个示例,用于绘制给定电容值对的电抗 频率,给出标题中的capactitor值。

set xrange[1:1e9] set xlabel 'frequency' set ylabel 'reactance' set grid set logscale x set logscale y C=10e-9 set title sprintf(" reactance for C=%g ", C); f(x)=1/(2*3.142*x*C) plot f(x) !sleep 10