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

问题描述 投票:3回答:1

我希望能够使用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命令。

任何人都可以提供任何其他建议去做这个?

linux graph plot gnuplot real-time
1个回答
3
投票

gnuplot 4.6 intruduced loops(while () {..}do for [] {..})。

如果你不能升级:

 if !exists("t") t=0
 dt=1
 set xr [t:t+dt]
 plot "data"
 pause 1
 t=t+1
 reread

但我建议使用while循环。

© www.soinside.com 2019 - 2024. All rights reserved.