系统相关
首页 > 系统相关> > linux-如何在GNUPLOT中绘制实时数据?数据来自不断向其记录新数据的文件

linux-如何在GNUPLOT中绘制实时数据?数据来自不断向其记录新数据的文件

作者:互联网

我希望能够使用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循环.

标签:plot,gnuplot,graph,real-time,linux
来源: https://codeday.me/bug/20191119/2039857.html