Automation 如何在gnuplot中每隔几秒钟自动回复一个图形?

Automation 如何在gnuplot中每隔几秒钟自动回复一个图形?,automation,gnuplot,Automation,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) { replo

我有一个每隔几秒钟更新一次的数据文件
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 "a.dat"

pause 1
reread
这样做的好处是,您不必将复杂的
plot
命令放入循环中,并且不会在错误消息中遇到plot命令的错误行号(至少在某些版本的Gnuplot中会发生这种情况)


最后,如果您的Gnuplot太旧了,它还不支持循环,那么还有另一种选择:

plot "a.dat"

while (1) {
    replot
    pause 1
}
plot "a.dat"

pause 1
reread

使用
重新读取
使脚本解释器再次跳转到文件的开头。

如果在命令行(选项
-e
)中使用绘图命令调用
gnuplot
),而不是命令脚本文件,则仅

gnuplot -e "...plot command(s)...; while (1) { pause 1; replot; }"
在我的情况下工作,另一个版本

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


在windows 10上,我必须在任务管理器中终止
gnuplot
任务,因为如果我用“关闭窗口”按钮关闭
gnuplot
窗口,窗口将在最晚一秒钟后再次打开。有人知道如何以更舒适的方式处理此问题吗?

此解决方案的缺点是,当gnuplot在另一个应用程序写入文件时恰好读取文件时,它有时可能会从.dat读取不完整的输入。Marcel:您必须以原子方式交换文件。大多数操作系统都能做到这一点。我在Clojure是这样做的: