101.37.5 凡例の配置 (key placement)

この節では、自動的に生成される通常の凡例の配置の説明をします。二次的な 凡例の構成や、他の場所への描画タイトルの配置については、以下参照:multiple keys (101.37.7)

配置の仕組みを理解ための最も重要な概念は、グラフ領域、すなわち内か外か ということと、グラフ領域の境界との間の余白 (margin) を考えることです。 グラフ領域に沿って、キーワード left/center/right (l/c/r) と top/center/bottom (t/c/b) は、凡例 (key) をその領域の内側のどこに置 くかを制御します。

モード inside では、凡例はキーワード left (l), right (r), top (t), bottom (b), center (c) によって以下の図のように描画領域の境界に向かって出力されます:


    t/l   t/c   t/r


    c/l    c    c/r


    b/l   b/c   b/r

モード outside でも上と同様に自動的に配置されますが、グラフ領域の境 界に対して、というよりもむしろ見た目に対して、というべきでしょう。すな わち、グラフの境界は、グラフ領域の外の凡例の場所を作るために、内側に移 動することになります。しかし、これは他のラベルの邪魔をしますし、もしか したら出力デバイスによってはエラーを引き起こすかもしれません。凡例の出 力に合わせてどの描画境界が移動するかは、上に述べた凡例の位置、および重 ね上げの方向に依存します。4 方向の中心揃えのオプション (center) に関 しては、どの境界が動くのかに関するあいまいさはありませんが、角への出力 のオプションについては、重ね上げ方向が vertical の場合は左または右の 境界が、horizontal の場合は上または下の境界が、それぞれ内側に適切に 移動します。

余白 (margin) の書き方は、重ね上げの方向にかかわない自動的な配置を可能 にしています。lmargin (lm), rmargin (rm), tmargin (tm), bmargin (bm) のうちの一つを、矛盾しない 1 方向のキーワードと組み合わ せて使用した場合、以下の図に示した場所に凡例が配置されます:


         l/tm  c/tm  r/tm


    t/lm                  t/rm


    c/lm                  c/rm


    b/lm                  b/rm


         l/bm  c/bm  r/bm

キーワード aboveovertmargin と同じ意味です。以前のバージョンとの互換性のために、aboveover は l/c/r や重ね上げ方向のキーワードなしで使用すると、centerhorizontal を使います。キーワ ード belowunderbmargin と同じ意味です。互換性のために、 belowunder は l/c/r や重ね上げ方向のキーワードなしで使用すると centerhorizontal を使います。さらに、outside も互換性のため に t/b/c や重ね上げ方向のキーワードがなければ、top, right, vertical (つまり上の t/rm と同じ) を使用します。

凡例の位置 (<position>) は、以前のバージョンと同様単に x,y,z を指定してもいいですが、その最初のサンプル行の座標の座表系を選択するための 5つのキーワード (first, second, graph, screen, character) を 頭につけることもできます。詳細は、以下参照: coordinates (13)<position> が与えられた場合の left, right, top, bottom, center の効果は、 label コマンドで配置される文字列の場合と同じように基準位置の位置揃えに 使用されます。すなわち、left は凡例が <position> の右に置かれて左合 わせで出力されます。他の場合も同様です。

竹野茂治@新潟工科大学
2021-06-25