72 Reread
reread コマンドは、load コマンドまたはコマンドラインで指定した
gnuplot のコマンドファイルを、その次のコマンドが読まれる前に、開
始点に再設定します。これは、コマンドファイルの最初から reread コマ
ンドまでのコマンドの無限ループを本質的に実装していることになります。
(しかし、これは何も悪いことではありません。reread は if と組み合
わせることでとても有用なコマンドとなります。詳細は、以下参照: if (p. )。)
標準入力からの入力の場合は、reread コマンドは何も影響を与えません。
例:
ファイル "looper" が次のようなファイルで
a=a+1
plot sin(x*a)
pause -1
if(a<5) reread
そして、gnuplot から次のように実行するとします。
a=0
load 'looper'
すると、pause のメッセージで分割された 5 回のプロットが行われることに
なります。
ファイル "data" が、各行に、0 から 10 までの範囲 (yrange) の 6 つのデ
ータ を持ち、最初が x 座標で、その他は 5 つの異なる関数の、その x での
値であるとします。そして、ファイル "plotter" が
c_p = c_p+1
plot "$0" using 1:c_p with lines linetype c_p
if(c_p < n_p) reread
で、gnuplot から次のように実行するとします。
n_p=6
c_p=1
unset key
set yrange [0:10]
set multiplot
call 'plotter' 'data'
unset multiplot
すると、5 つのプロットを合わせた 1 つのグラフができます。yrange は、
multiplot モードで最初のものに続けて書かれる 5 つのグラフが、同じ軸を
持つように、明示的に指定する必要があります。線種も指定しなければなりま
せん。さもないと、全てのグラフが同じ線種で書かれることになります。
アニメーションのサンプルとして、demo ディレクトリの animate.dem も参照
してください。
竹野茂治@新潟工科大学
2010年9月13日