我希望能够使用gnuplot实时绘制数据
具体来说,例如
我有一个文件“ foo.st”,它是一个数据文件,用列分隔.
“ foo.st”中的数据是通过实时变量实时收集的
我想打开gnuplot并绘制“ foo.st”中的数据作为其连续记录的数据.理想情况下,我希望该图显示一个“ 1秒”图,然后刷新以显示下一个“ 1秒”数据,然后再次刷新以显示下一个“ 1秒”数据…
现在,我有一个gnuplot脚本“ foo.p”,内容为:
set autoscale
set xtic auto
set ytic auto
set title "Leg Position"
set xlabel "Time (sec)"
set ylabel "Position"
plot "foo.st" u 1:2,'' u 1:3,'' u 1:4,'' u 1:5,'' u 1:6,'' u 1:7
pause 1
replot
set xrange [1:2]
replot
pause 1
set xrange [2:3]
replot
pause 1
set xrange [3:4]
replot
...
等等,我一直不得不重新定义xrange以显示1秒的数据帧,然后运行replot命令.
任何人都可以提出其他建议来解决这个问题吗?
解决方法:
gnuplot 4.6引入了循环(while(){..},对[] {..}做).
如果无法升级:
if !exists("t") t=0
dt=1
set xr [t:t+dt]
plot "data"
pause 1
t=t+1
reread
但我建议使用while循环.