如何在 gnuplot 中每隔几秒自动重新绘制一次图形?

How to automatically replot a graph every few seconds in gnuplot?

我有一个每隔几秒更新一次的数据文件a.dat。我希望每隔几秒在 gnuplot 中绘制它以查看更改

plot "a.dat"

最简单的方法是什么?谢谢

制作一个带循环的脚本:

while (1) {
    plot "a.dat"
    pause 1      # waiting time in seconds
}

gnuplot script.gp执行。


出于代码结构和调试的目的,您可能更喜欢以下备选方案:

plot "a.dat"

while (1) {
    replot
    pause 1
}

这样做的好处是您不必在循环中放置复杂的 plot 命令,并且不会在错误消息中遇到 plot 命令不正确的行号(至少在某些版本中会发生) Gnuplot)。


最后,如果你的 Gnuplot 太旧以至于它还不支持循环,还有一个选择:

plot "a.dat"

pause 1
reread

使用 reread 使脚本解释器再次跳转到文件的开头。

如果 gnuplot 在命令行(选项 -e)中使用 plot 命令而不是命令脚本文件调用,则只有版本

gnuplot -e "...plot command(s)...; while (1) { pause 1; replot; }"

适用于我的情况,其他版本

gnuplot -e "...plot command(s)...; pause 1; reread;" 

没有。

在 windows 10,我必须在任务管理器中终止 gnuplot 任务,因为如果我用 close-[= 关闭 gnuplot window 25=]-按钮,window 最晚一秒后再次打开。有没有人知道如何以更舒适的方式处理这个问题?