我试图使用gnuplot显示动画 我得到了以下脚本:
plot ”heat1d.txt ” using 1:2 every :::a::a
pause 0.01
a=a+1
if ( a<b ) reread
我使用
执行a = 0
b = 100
load "a.plot"
它可以工作,但有没有办法只使用shell中的1个命令执行所有这些操作?
或者有没有办法将变量定义集成到.plot文件中,以便我可以简单地执行它?我试过了echo 'a=0'|gnuplot
等不同的东西,但它似乎没有真正正确地定义变量
感谢
答案 0 :(得分:3)
您可以使用do for循环。
do for [a = 0:100] {
plot ”heat1d.txt ” using 1:2 every :::a::a
pause 0.01
}
linux上的默认终端通常是wxt
,它有raise
选项,它会在每次迭代时将焦点更改为绘图窗口。这将使得停止动画变得困难,如果不是不可能的话。
我建议将noraise
作为终端选项。例如,您可以将以下行放在脚本的开头:
set term wxt noraise
现在,如果你想中途停止动画,请在gnuplot终端上按 Ctrl C 。
答案 1 :(得分:0)
您可以将-e
作为命令行参数传递。例如,如果您有脚本:
#script test.gp
print foo,bar
然后你可以使用gnuplot运行它:
gnuplot -e "foo=1;bar=2" test.gp
在您的情况下,看起来您可以通过调用脚本来完成您想要的任务:
gnuplot -e "a=0;b=100" a.plot