2018年2月14日水曜日

[gnuplot] 複数のグラフを一枚にプロットする

gnuplotで,複数のプロットを一枚に描く(同じようなグラフを並べる)方法のメモです.
以下にスクリプトの例を示します.青字部分が,複数グラフのプロットに関連したコマンドです.

set multiplot layout 2,3 rowsfirst downwards title "Lissajous curve"
set parametric
set samples 1000
set xrange [-1.2:1.2]
set yrange [-1.2:1.2]
set trange [0:2*pi]
set key outside center top samplen 0
plot cos(1*t),sin(2*t)
plot cos(1*t),sin(3*t)
plot cos(2*t),sin(3*t)
plot cos(2*t),sin(5*t)
plot cos(3*t),sin(5*t)
plot cos(4*t),sin(5*t)
unset multiplot

<解説>
set multiplot layout 2,3 rowsfirst downwards title "Lissajous curve"
複数プロットをする宣言(set multiplot)を行います.
例では"layout 2,3"によって縦2行,横3列にプロットすることを宣言しています.
"rowsfirst"は行(横)優先に並べる(プロットするグラフが左,右...と並べられる)ことを意味します.
列(縦)優先に並べる場合は"columnsfirst"とします(プロットするグラフが上,下...と並べられる).
"downwards" は下方向に並べること意味します.上記の例の場合は最初に左から右に3個のプロット
plot cos(1*t),sin(2*t)
plot cos(1*t),sin(3*t)
plot cos(2*t),sin(3*t)
が並べられた後に,次の列に移って以下の3個のプロットが左から右に並べられることになります.
plot cos(2*t),sin(5*t)
plot cos(3*t),sin(5*t)
plot cos(4*t),sin(5*t)

このスクリプトを実行すると,以下のような図が作成されます.



0 件のコメント :

コメントを投稿