在gnuplot中的1个命令中执行动画

时间:2013-02-09 23:29:45

标签: animation gnuplot

我试图使用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等不同的东西,但它似乎没有真正正确地定义变量

感谢

2 个答案:

答案 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