Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot 使用数组中的数据索引绘制多个图形_Gnuplot - Fatal编程技术网

Gnuplot 使用数组中的数据索引绘制多个图形

Gnuplot 使用数组中的数据索引绘制多个图形,gnuplot,Gnuplot,使用版本5.2 patchlevel 2,我尝试了以下绘图: gnuplot> set xdata time gnuplot> set timefmt "%s" gnuplot> array lr_a[100];array lr_b[100] gnuplot> plot "free.dat" using 2:(i=stringcolumn(0)+1,lr_a[i]=$13,lr_b[i]=$14,$10) with linesp title columnheader(1)

使用版本5.2 patchlevel 2,我尝试了以下绘图:

gnuplot> set xdata time
gnuplot> set timefmt "%s"
gnuplot> array lr_a[100];array lr_b[100]
gnuplot> plot "free.dat" using 2:(i=stringcolumn(0)+1,lr_a[i]=$13,lr_b[i]=$14,$10) with linesp title columnheader(1)
gnuplot> print i
13
gnuplot> print lr_a
[-452057.0,-178648.0,9568.53,10688.5,11016.6,11142.9,11137.5,12296.8,12467.0,-147009.0,-18170.2,-17176.1,-6493.16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]
gnuplot> print lr_b
[0.000292381,0.000119527,5.32936e-07,-1.75101e-07,-3.82532e-07,-4.62388e-07,-4.58968e-07,-1.19192e-06,-1.29956e-06,9.95245e-05,1.80699e-05,1.74415e-05,1.06875e-05,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]
现在,我想使用这些数组添加绘图:

j=1
gnuplot> replot "free.dat" using 2:(lr_a[j]+lr_b[j]*$2) with linesp title "LR#".j
然而,当我尝试添加更多这样的情节时,它起了作用

这些图都是相同的,标记为LR3。

为什么会这样

作为参考,这里有一个相当无用的free.dat:

replot的行为与您可能认为的不同。它不复制以前的情节;它通过重新使用上一个命令创建新的打印。那么命令的顺序呢

j = j0
plot foo(j)
j = j+1
replot, foo(j)
j = j+1
replot, foo(j)
同一绘图的结果为3份fooj0+2

如果要用连续的k值组成绘图,请不要使用replot。而是做一些类似的事情

 plot for [j = j0 : j0+2] foo(j)
replot的行为与您可能认为的不同。它不复制以前的情节;它通过重新使用上一个命令创建新的打印。那么命令的顺序呢

j = j0
plot foo(j)
j = j+1
replot, foo(j)
j = j+1
replot, foo(j)
同一绘图的结果为3份fooj0+2

如果要用连续的k值组成绘图,请不要使用replot。而是做一些类似的事情

 plot for [j = j0 : j0+2] foo(j)

这意味着plot命令存储时未替换变量?是的。存储上一个plot命令的文本,然后通过在replot后面添加逗号和文本来创建同一命令的更长版本。这意味着plot命令存储时未替换变量?是。存储上一个plot命令的文本,然后通过在replot后面添加逗号和文本来创建同一命令的更长版本。