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

标签 linux graph plot gnuplot real-time

我希望能够使用 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 () {..}do for [] {..})。

如果无法升级:

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

但我建议使用 while 循环。

关于linux - 如何在 GNUPLOT 中绘制实时数据?数据来自不断向其记录新数据的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823656/

相关文章:

添加节点的效果未知时寻找最便宜路径的算法

c# - (Euclidean Shortest Path) 检测平面内障碍物的角点

matplotlib - 如何在 matplotlib 中通过彩虹设置箱线图颜色

python - 绘制Python数据框列

c - 如何为 Linux 编写 Hello world 驱动程序

java - Java 的 dir.listFiles() 和 *.nix 的 ls 有什么区别?

c++ - 如何在Qt中绘制和编辑折线图

python - 如何绘制多个 Pandas 列

c - 什么是实现简单的基于 clone() 的多线程库的好方法?

php - 防止php使用默认用户名和密码到mysql