gnuplotで複数枚のグラフを描画する方法(multiplot)

指導書の図5はgnuplotのmultiplot環境で,2枚のグラフを同時に描いている. これは次の手順に従っている.

gnuplot> set multiplot
multiplot> set size 1,0.5
multiplot> set origin 0,0.5
multiplot> set key left
multiplot> set yrange [-10:10]
multiplot> set title "Real part of DFT, sin(x), 103158, Hideyuki Nomura"
multiplot> set xlabel "Sample number"
multiplot> set ylabel "DFT"
multiplot> plot "sin_R.dft" with impulses, "sin_R.dft" with points
multiplot> set size 1,0.5
multiplot> set origin 0,0
multiplot> set yrange [-10:10]
multiplot> set title "Imaginary part of DFT, sin(x), 103158, Hideyuki Nomura"
multiplot> set xlabel "Sample number"
multiplot> set ylabel "DFT"
multiplot> plot "sin_I.dft" with impulses, "sin_I.dft" with points
multiplot> unset multiplot

最後のunset terminalでmultiplot環境を抜け出します. 使用ファイル名描画範囲(xrange, yrange)を適切に設定すること.

なお,これら一連のコマンドをテキストファイルに保存し,gnuplotで読み込めば,その都度,コマンドを入力する手間が省ける.例えば,

  1. エディタを用いて,これらコマンドを書き込んだテキストファイル(ここでプロットファイルと呼ぶ)を作成する.仮にこのファイル名をsin_dft.pltとする.
  2. gnuplotを立ち上げ,
    gnuplot> load "sin_dft.plt"
    とプロットファイルsin_dft.pltを読み込む.

プロットファイル中の読み込みデータファイルの部分を修正するだけで,同じようなグラフを容易に作成できる.

multiplot環境でのグラフの保存

multiplot環境で図の表示が確認されたら,画像として保存します. ただし,multiplot環境の場合,出力端末(terminal)を途中で変更することはできない.
そこで上の操作の前に次の2行

gnuplot> set terminal pngcairo
gnuplot> set output "sample.png"

を追加し,上の操作の最後のコマンド(unset multiplot)の前に次の1行

multiplot> unset terminal

を追加する. すなわち

gnuplot> set terminal pngcairo
gnuplot> set output "sample.png"
gnuplot> set multiplot
multiplot> set size 1,0.5
multiplot> set origin 0,0.5
multiplot> set key left
multiplot> set yrange [-10:10]
multiplot> set title "Real part of DFT, sin(x), 103158, Hideyuki Nomura"
multiplot> set xlabel "Sample number"
multiplot> set ylabel "DFT"
multiplot> plot "sin_R.dft" with impulses, "sin_R.dft" with points
multiplot> set size 1,0.5
multiplot> set origin 0,0
multiplot> set yrange [-10:10]
multiplot> set title "Imaginary part of DFT, sin(x), 103158, Hideyuki Nomura"
multiplot> set xlabel "Sample number"
multiplot> set ylabel "DFT"
multiplot> plot "sin_I.dft" with impulses, "sin_I.dft" with points
multiplot> unset terminal
multiplot> unset multiplot

とする. 使用ファイル名を適切に設定すること.


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-15 (金) 21:47:55