next up previous contents
: 直交座標を用いたパラメータ付き曲線のプロット : 2次元グラフを描画する : 2個以上の関数を同時にプロットする 目次


グラフをどんどん重ね書きしてゆく

gnuplotでグラフを描くときには, plotが実行されるたびに 以前描いてあったグラフが消え, 新しいグラフが作成されました. では, 1枚の図にグラフをどんどん追加してゆくにはどうしたらよいでしょうか?

このためには, multiplot というコマンドを使います.

multiplotの使い方を説明する前に, multiplotモードでは画面に描画したグラフをあらためてファイルに保存することはできない ということを注意しておきます. gnuplotでは描画したグラフを保存するときには

terminal と output の切り換え
という操作をおこなうわけですが, 一旦multiplotモードに入ってしまうと, この切り換えができません. ですから, multiplotモードで描画したグラフをファイルに保存するためには, のいずれかの操作をおこなう必要があります. 前者の操作をおこなう場合は, ふつうは事前に試し書きをしてグラフを調整してから改めて描画をすべてやり直すことになります. 若干面倒です. 後者の操作では, 得られるグラフの品質はかなり低くなります.

では, multiplotの使い方を説明しましょう.

  set multiplot [Enter]
と入力すると, gnuplotのウィンドウは図7.27のような状態になり, さらに何も描かれていないグラフィックスウィンドウが画面にあらわれます.
図 7.27: multiplotモード
\includegraphics[scale=.8]{EPS/gnuplot-multiplot.eps}
プロンプトが
  gnuplot
から
  multiplot
に変わったことで, グラフの重ね書きモードに入っていることが確認できます. これ以降コマンド plot を実行するたびに, グラフがこのウィンドウにどんどん追加されてゆきます. ただし, 描画範囲の自動調整などはうまくいかないことが あるので, set origin, set size といったコマンドを 実行してグラフの原点や大きさを調整する必要があります.

では, 例として

set multiplot [Enter]
set size 0.5 [Enter]
set origin 0,0 [Enter]
plot sin(x) [Enter]
set origin 0.5,0 [Enter]
plot cos(x) [Enter]
set origin 0,0.5 [Enter]
plot x**2 [Enter]
set origin 0.5,0.5 [Enter]
plot x**3 [Enter]
というコマンドを実行した場合に作成されるグラフを 図7.28に示します.
図 7.28: multiplotによって作成されたグラフの例
\includegraphics[width=.6\textwidth]{EPS/gnuplot-multiplot2.eps}

multiplotモードを抜けて通常のモードに戻りたいときには,

set nomultiplot [Enter]
と入力します.

ここまでの結果をまとめておきましょう.

表 7.17: multiplotモードへの切り換え
機能 コマンド
multiplotモードに入る set multiplot [Enter]
multiplotモードを抜ける set nomultiplot [Enter]


さいごに, 複数のグラフを test.eps というPostScriptファイルに描画して, 続いてmultiplotモードを抜ける例を示しておきます.

set terminal postscript eps [Enter]
set output 'test.eps' [Enter]
set multiplot [Enter]
plot sin(x) [Enter]
plot cos(x) [Enter]
set nomultiplot [Enter]


next up previous contents
: 直交座標を用いたパラメータ付き曲線のプロット : 2次元グラフを描画する : 2個以上の関数を同時にプロットする 目次
Shigeru HANBA 平成17年7月16日