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

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

我有一个数据文件

a.dat
,每隔几秒钟更新一次。 我希望每隔几秒在 gnuplot 中绘制一次以查看变化

plot "a.dat"

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

automation gnuplot
3个回答
15
投票

制作一个带有循环的脚本:

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

使用

gnuplot script.gp
执行它。


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

plot "a.dat"

while (1) {
    replot
    pause 1
}

这样做的好处是,您不必在循环内放置复杂的

plot
命令,并且不会在错误消息中遇到错误消息中的绘图命令的行号问题(至少在某些版本的 Gnuplot 中会发生这种情况)。


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

plot "a.dat"

pause 1
reread

使用

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


4
投票

如果在命令行中使用绘图命令(选项

gnuplot
)而不是命令脚本文件调用
-e
,则仅调用版本

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

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

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

没有。

在 Windows 10 上,我必须在任务管理器中终止

gnuplot
任务,因为如果我使用关闭窗口按钮关闭
gnuplot
窗口,该窗口会在最晚一秒后再次打开。有人知道如何以更舒适的方式处理这个问题吗?


0
投票

已接受的解决方案,即带有循环的脚本,在 Ubuntu 计算机上适用于我。为了解决 mjavu 提出的问题,即需要一个干净的方法来停止脚本和关联任务的运行,终端窗口中的 Ctrl-C 可以正常工作。

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