75.30 Key

コマンド set key は描画された曲線の説明や表題を表示することを可能に します。

説明 (key) の内容、すなわち描画される個々のデータ集合や関数につける名 前、およびそれらグラフの曲線とグラフ上の点を表す記号からなるサンプルは、 plot (または splot) コマンドの title, with オプションにより決 定されます。より詳しい情報については、以下参照: plot title (p. [*]),plot with (p. [*])

書式:

     set key {on|off} {default}
             {{inside | outside} | {lmargin | rmargin | tmargin | bmargin}
               | {at <position>}}
             {left | right | center} {top | bottom | center}
             {vertical | horizontal} {Left | Right}
             {{no}reverse} {{no}invert}
             {samplen <sample_length>} {spacing <vertical_spacing>}
             {width <width_increment>}
             {height <height_increment>}
             {{no}autotitles {columnheader}}
             {title "<text>"} {{no}enhanced}
             {font "<face>,<size>"} {textcolor <colorspec>}
             {{no}box { {linestyle | ls <line_style>}
                        | {linetype | lt <line_type>}
                          {linewidth | lw <line_width>}}}
     unset key
     show key

キー (説明) は、グラフ内の各描画に対するタイトルとサンプル (凡例; 線、 点、箱) から成ります。キーの機能は、set key off または unset key で無効にできます。個々のキーのエントリは、対応する plot コマンド内にキ ーワード notitle を使うことで無効にできます。

キー内の各要素は vertical (縦) または horizontal (横) に従って重ね られます。vertical の場合、key は可能ならば 2,3 個の縦の列を使います。 すなわち、各要素は垂直スペースがなくなるまでは 1 つの列に整列されます が、そこから新しい列が開始されます。horizontal の場合は、key は可能 ならば 2,3 個の横の行を使用します。

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

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

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

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

plotsplot で描画される全ての曲線は、デフォルトのオプション autotitles に従って表題 (title) がつけられます。表題の自動生成は、 noautotaitle で抑制できますがその場合、(s)plot ... title ... で明 示的に指定された表題のみが描かれることになります。

コマンド set key autotitle columnheader は、各入力データの先頭行の各 列のエントリをテキスト文字列と解釈し、対応する描画グラフのタイトルとし て使用します。描画される量が、複数の列データの関数である場合は、 gnuplot はどの列をタイトルの描画に使えばいいのかわかりませんので、その ような場合、plot コマンド上で、例えば以下のように明示的にタイトルの列を指定する必要があります。


     plot "datafile" using (($2+$3)/$4) title columnhead(3) with lines

全体に渡る表題は説明の上につけることもできます (title "< text> ")。単 一引用符 (') と二重引用符 (") の違いについては、以下も参照: syntax (p. [*])。 説明の表題の行揃えは、グラフの表題の行揃えと同じものが使われます。

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

説明は、1 行に 1 曲線分ずつの数行のまとまりとして書かれます。各行の右 側には (reverse を使っていれば左側には) その曲線と同じ種類の直線のサ ンプルが引かれ、他の側には plot コマンドから得られる文字列 (title) が置かれます。これらの行は、架空の直線が説明の左側と右側を分けるかのよ うに垂直に整列されます。コマンド set key で指定する座標はこの架空の 線分の上の端の座標です。plot では直線の位置を指定するために x と y だけが使われ、splot では、x, y, z の値全てを使い、グラフを 2 次元面 へ投影するのと同じ方法を使って、架空の直線の 2 次元画面での位置を生成 します。

TeX, PostScript, またはこれらと同等の、整形情報が文字列に埋め込まれる 出力を使う場合は、gnuplot は説明の位置合わせのための文字列の幅を 正しく計算できません。よって説明を左に置く場合は set key left Left reverse という組合せを使うのがいいでしょう。そうす れば説明の枠と枠内のすき間は文字列そのままの幅に合わせられます。

splot で等高線を書く場合、説明には等高線のラベルも表示されます。 これらのラベルの並び具合がうまくいかない、または別な位置に小数点を 置きたい場合はそのラベルの書式を指定できます。詳細は、以下参照:set clabel (p. [*])

例:

以下はデフォルトの位置に説明を表示します:

     set key default

以下は説明を表示しなくします:

     unset key

以下はデフォルトの (第一の) 座標系での (2,3.5,2) の位置に説明を表示 します:

     set key at 2,3.5,2

以下は説明をグラフの下に表示します:

     set key below

以下は説明を左下角に表示し、テキストは左に行揃えで、タイトルをつけ、線種 3 の外枠を書きます:

     set key left bottom Left title 'Legend' box 3



竹野茂治@新潟工科大学
2010年3月14日