我一直在对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。我该如何解决这个问题?
所有帮助表示赞赏:)
答案 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