99.38 凡例 (key)

コマンド set key は、描画領域内の各グラフに対するタイトルとサンプル (線分、点、箱) を持つ凡例 (または表題) を有効にします。凡例の機能は、 set key offunset key とすることで無効にできます。凡例の個々の 項目については、対応する plot コマンドでキーワード notitle を使用す ることで無効にできます。凡例のタイトル文字列は、オプション set key autotitle や、個々の plotsplot コマンド上の title キーワードで制御できます。詳細は以下参照: plot title (p. [*])

書式:

     set key {on|off} {default}
           {{inside | outside | fixed}
             | {lmargin | rmargin | tmargin | bmargin}
             | {at <position>}}
           {left | right | center} {top | bottom | center}
           {vertical | horizontal} {Left | Right}
           {{no}enhanced}
           {{no}opaque}
           {{no}reverse} {{no}invert}
           {samplen <sample_length>} {spacing <line_spacing>}
           {width <width_increment>} {height <height_increment>}
           {{no}autotitle {columnheader}}
           {title {"<text>"} {{no}enhanced} {center | left | right}}
           {font "<face>,<size>"} {textcolor <colorspec>}
           {{no}box {linestyle <style> | linetype <type> | linewidth <width>}}
           {maxcols {<max no. of columns> | auto}}
           {maxrows {<max no. of rows> | auto}}
     unset key
     show key

凡例 (key) は各要素を vertical (縦) か horizontal (横) の指定に従 って重ねます。vertical の場合、凡例は可能ならば 2,3 個の縦の列を使い ます。すなわち、垂直方向の場所がある間は各要素を 1 つの列に並べますが、 その次は新しい列に並べ始めます。垂直方向の行数は、maxrows を使って制 限できます。horizontal の場合は、凡例は横の行数をなるべく少なくしよ うとします。水平方向の列数は maxcols で制限できます。

デフォルトでは、凡例はグラフ領域の内側の右上の角に置かれます。キーワー ド left, right, top, bottom, center, inside, outside, lmargin, rmargin, tmargin, bmargin (, above, over, below, under) は、グラフ領域の他の場所への自動的な配置のために使用します。 凡例の描画をどこに置くかをより詳しく指示するための at <position> も あります。この場合、キーワード left, right, top, bottom, center が同様の基準点合わせの設定の目的で使われます。 より詳しくは、以下参照: key placement (p. [*])

グラフのタイトルの行揃えは Left, Right (デフォルト) で指示します。 ラベル文字列と曲線のサンプルは左右入れ替えることができます (reverse) し、 全体を枠で囲むこともできます (box {...})。その枠の線は、線種 (linetype), 線幅 (linewidth)、あるいは定義済のラインスタイル (linestyle) を指定することもできます。

凡例の文字列は、デフォルトで拡張文字列モード (enhanced) に設定されて いますが、これはオプション {no}enhanced で変更でき、キーのタイトルだ けや、個々のグラフ毎に変更することも可能です。

デフォルトでは、凡例は一つのグラフと同時に作られます。すなわち、凡例の 記号とタイトルは、それに対応するグラフと同時に描かれます。それは、新し いグラフが時には凡例の上に要素をかぶせて配置しうることを意味します。 set key opaque は、凡例をすべてのグラフの描画が終った後に生成させま す。この場合、凡例の領域は背景色で塗りつぶされて凡例の記号とタイトルが 描かれます。よって、凡例自身はいくつかの描画要素を覆い隠してしまい得る ことになります。set key noopaque でデフォルトに復帰できます。

デフォルトでは、最初の描画のラベルが凡例の一番上に現われ、それに続くラ ベルがその下に並んで行きます。オプション invert は、最初のラベルを凡 例の一番下に置き、それに続くラベルをその上に並べて行きます。このオプシ ョンは、凡例のラベルの縦の並びの順番を、積み上げ形式のヒストグラム (histograms) の箱の順番に合わせるときに便利でしょう。

<height_increment> は、凡例の箱の高さに加えたり減らしたりする高さ (何 文字分か) を表す数値です。これは主に、凡例の回りに箱を描く場合で、凡例 の並びの回りの境界線をより大きくしたい場合のものです。

全体に渡るタイトルを凡例の上につけることもできます (title "<text>")。 単一引用符 (') と二重引用符 (") の違いについては、以下も参照: syntax (p. [*])。 タイトルの行揃えはデフォルトでは中央合わせで、それはキーワード rightleft で変更することもできます。

set key のデフォルトは、on, right, top, vertical, Right, noreverse, noinvert, samplen 4, spacing 1, notitle, nobox です。凡例の枠の線種はデフォルトではグラフ描画の外枠と同じものが使われ ます。set key default とするとデフォルトの設定に戻ります。

凡例内には、各グラフに対して、その描画スタイルを示す線分か記号か形、お よびそのタイトルが 1 行で表現されます。plot コマンドでキーワード notitle を使うと、凡例行の生成を抑制します。等高線描画では、各等高線 に対応した行が凡例内に追加されます (以下参照: cntrlabel (p. [*]))。ファイル名 や関数名の代わりにキーワード keyentry を与えたダミーの plot コマンド を使うことで、凡例内に追加の行を入れることができます。以下参照:keyentry (p. [*])

TeX, LaTeX 系の出力形式や、整形情報が文字列に埋め込まれる出力形式を使 う場合は、gnuplot は凡例の位置決めのための文字列の幅を評価することし かできません。よって凡例を左に置く場合は、set key left Left reverse という組合せを使うのがいいでしょう。



Subsections
竹野茂治@新潟工科大学
2020-12-08