82.41 Multiplot

コマンド set multiplotgnuplot を多重描画モードにします。これ は複数の描画を同じページ、ウィンドウ、スクリーンに表示するものです。

書式:

     set multiplot
         { title <page title> {font <fontspec>} {enhanced|noenhanced} }
         { layout <rows>,<cols>
           {rowsfirst|columnsfirst} {downwards|upwards}
           {scale <xscale>{,<yscale>}} {offset <xoff>{,<yoff>}}
         }
     unset multiplot

出力形式 (terminal) によっては、コマンド unset multiplot が与えられ るまで何の描画も表示されないことがあります。この場合このコマンドにより ページ全体の描画が行なわれ、gnuplot は標準の単一描画モードになります。 それ以外の出力形式では、各 plot コマンドがそれぞれ表示を更新しますが、それは、それまで出力したものすべてを再描画し、それに新しいものを追加する方法、あるいは、現在の表示に単に新しいものを追加するだけのやり方、のいずれかです。

次の描画で使われる領域は、新しい描画が行われる前に消されることはありま せんから、描画を "挿入" するような場合などでそうしたいなら、clear コ マンドを使用してください。

定義済の見出しやベクトルは、各描画において、毎回現在のサイズと原点に従 って書かれます (それらが screen 座表系で定義されていない場合)。それ 以外の全ての set で定義されるものも各描画すべてに適用されます。もし 1 度の描画にだけ現われて欲しいものを作りたいなら、それが例えば日付 (timestamp) だとしたら、set multiplotunset multiplot で囲まれ たブロック内の plot (または splot, replot) 命令の一つを set timeunset time ではさんでください。

multiplot のタイトルは、個々の描画タイトルがあったとしても、それとは別 のもので、ページの上部にそのためのキャンバス全体の幅にわたるスペースが 確保されます。

layout が指定されていない場合、あるいはより良い位置合わせをしたい場合 は、コマンド set originset size 各描画で正しい位置に設定する必 要があります。詳細は、以下参照: set origin (82.49), set size (82.65)

例:

     set multiplot
     set size 0.4,0.4
     set origin 0.1,0.1
     plot sin(x)
     set size 0.2,0.2
     set origin 0.5,0.5
     plot cos(x)
     unset multiplot

これは、cos(x) のグラフを、sin(x) の上に積み重ねて表示します。

set sizeset origin は全体の描画領域を参照し、それは各描画で利 用されます。以下も参照: set term size (7)。描画境界を一列に揃えたいなら ば、set margin コマンドで、境界の外の余白サイズを同じサイズに揃える ことが出来ます。その使用に関しては、以下参照: set margin (82.39)。余白サイズ は文字サイズ単位の絶対的な数値単位を使用することに注意してください。よ って残ったスペースに描かれるグラフは表示するデバイスの表示サイズに依存 します。例えば、プリンタとディスプレイの表示は多分違ったものになるでし ょう。

オプション layout により、各描画の前にそれぞれ与えていた set sizeset origin コマンドなしに、単純な複数グラフの描画を作成できます。 それらの設定は自動的に行なわれ、いつでもその設定を変更できます。 layout では表示は < rows> 行と < cols> 列の格子に分割され、各格子は、 その後に続く対応する名前のオプションによって行 (rowsfirst)、あるいは列 (columnsfirst) が先に埋められて行きます。描画グラフの積み上げは下方向 (downwards) に、または上方向 (upwards) に伸びるようにできます。デ フォルトは rowsfirstdownwards です。

各描画は scale で伸縮を、offset で位置の平行移動を行なうことができ ます。scale や offset の y の値が省略された場合は、x の値がそれに使用 されます。unset multiplot により自動配置機能はオフになり、そして set sizeset origin の値は set multiplot layout の前の状態に 復帰されます。

例:

     set size 1,1
     set origin 0,0
     set multiplot layout 3,2 columnsfirst scale 1.1,0.9
     [ ここには 6 つまでの描画コマンド ]
     unset multiplot

上の例では 6 つの描画が 2 列の中に上から下へ、左から右へと埋められて行 きます。各描画は水平サイズが 1.1/2、垂直サイズが 0.9/3 となります。

以下も参照

multiplot のデモ (multiplt.dem)

竹野茂治@新潟工科大学
2015年6月19日