コマンドset keyは描画された曲線の説明や表題を表示することを可能にします。
112 gnuplot 4.4 75 SET-SHOW
説明(key)の内容、すなわち描画される個々のデータ集合や関数につける名前、およびそれらグラフの曲
線とグラフ上の点を表す記号からなるサンプルは、plot(またはsplot)コマンドのtitle,withオプショ ンにより決定されます。より詳しい情報については、以下参照: plot title (p. 83),plot with (p. 84)。
書式:
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>}}}
{maxcols {<max no. of columns> | auto}}
{maxrows {<max no. of rows> | auto}}
unset key show key
キー(説明)は、グラフ内の各描画に対するタイトルとサンプル(凡例;線、点、箱)から成ります。キーの 機能は、set key offまたはunset keyで無効にできます。個々のキーのエントリは、対応する plotコ マンド内にキーワードnotitleを使うことで無効にできます。
キー内の各要素はvertical (縦)または horizontal (横)に従って重ねられます。verticalの場合、key は可能ならば2,3個の縦の列を使います。すなわち、各要素は垂直スペースがなくなるまでは1 つの列に 整列されますが、そこから新しい列が開始されます。垂直スペースは、maxrowsを使って制限できます。
horizontalの場合は、keyは横の行をできるだけ少なく使おうとします。水平方向のスペースはmaxcols により制限できます。
デフォルトでは、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. 113)。
グラフのタイトルの行揃えはLeft,Right(デフォルト)で指示します。ラベル文字列と曲線のサンプルは 左右入れ替えることができます(reverse)し、 全体を枠で囲むこともできます(box {...})。その枠の線 は、線種(linetype),線幅(linewidth)、あるいは定義済のラインスタイル(linestyle)を指定すること もできます。
デフォルトでは最初の描画のラベルが説明の一番上に現われ、それに続くラベルがその下に並んで行きま す。オプションinvertは、最初のラベルを説明の一番下に置き、それに続くラベルをその上に並べて行き ます。このオプションは、説明のラベルの縦の並びの順番を、積み上げ形式のヒストグラム(histograms) の箱の順番に合わせるときに便利でしょう。
<height increment>は、説明の箱の高さに加えたり減らしたりする高さ(何文字分か)を表す数値です。こ
れは主に、説明の回りに箱を描く場合で、説明の並びの回りの境界線をより大きくしたい場合のものです。
plotやsplotで描画される全ての曲線は、デフォルトのオプションautotitlesに従って表題(title)がつ けられます。表題の自動生成は、noautotaitleで抑制できますがその場合、(s)plot ... title ... で明示 的に指定された表題のみが描かれることになります。
コマンドset key autotitle columnheaderは、各入力データの先頭行の各列のエントリをテキスト文 字列と解釈し、対応する描画グラフのタイトルとして使用します。描画される量が、複数の列データの関 数である場合は、gnuplot はどの列をタイトルの描画に使えばいいのかわかりませんので、そのような場 合、plotコマンド上で、例えば以下のように明示的にタイトルの列を指定する必要があります。
plot "datafile" using (($2+$3)/$4) title columnhead(3) with lines
75 SET-SHOW gnuplot 4.4 113
全体に渡る表題は説明の上につけることもできます(title "<text>")。単一引用符(’)と二重引用符 (") の違いについては、以下も参照: syntax (p. 40)。説明の表題の行揃えは、グラフの表題の行揃えと同じ ものが使われます。
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. 96)。
例:
以下はデフォルトの位置に説明を表示します:
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
75.30.1 キーの配置(key placement)
配置の仕組みを理解ための最も重要な概念は、グラフ領域、すなわち内か外かということと、グラフ領域 の境界との間の余白 (margin) を考えることです。グラフ領域に沿って、キーワード left/center/right (l/c/r)とtop/center/bottom(t/c/b) は、keyをその領域の内側のどこに置くかを制御します。
モードinside では、keyはキーワード 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でも上と同様に自動的に配置されますが、グラフ領域の境界に対して、というよりもむし
ろ見た目に対して、というべきでしょう。すなわち、グラフの境界は、グラフ領域の外のkeyの場所を作 るために、内側に移動することになります。しかし、これは他のラベルの邪魔をしますし、もしかしたら 出力デバイスによってはエラーを引き起こすかもしれません。keyの出力に合わせてどの描画境界が移動 するかは、上に述べたkeyの位置、および重ね上げの方向に依存します。4方向の中心揃えのオプション
114 gnuplot 4.4 75 SET-SHOW
(center)に関しては、どの境界が動くのかに関するあいまいさはありませんが、角への出力のオプション
については、重ね上げ方向がverticalの場合は左または右の境界が、horizontalの場合は上または下の 境界が、それぞれ内側に適切に移動します。
余白(margin)の書き方は、重ね上げの方向にかかわない自動的な配置を可能にしています。lmargin(lm),
rmargin(rm),tmargin(tm),bmargin (bm)のうちの一つを、矛盾しない1 方向のキーワードと組み 合わせて使用した場合、以下の図に示した場所にkeyが配置されます:
l/tm c/tm r/tm
t/lm t/rm
c/lm c/rm
b/lm b/rm
l/bm c/bm r/bm
キーワードaboveとoverは tmarginと同じ意味です。以前のバージョンとの互換性のために、above
とoverはl/c/rや重ね上げ方向のキーワードなしで使用すると、centerでhorizontalを使います。キー
ワードbelowとunderはbmarginと同じ意味です。互換性のために、belowとunderはl/c/rや重 ね上げ方向のキーワードなしで使用するとcenterで horizontalを使います。さらに、outsideも互換 性のためにt/b/cや重ね上げ方向のキーワードがなければ、top,right,vertical(つまり上のt/rmと同 じ)を使用します。
説明の位置(<position>)は、以前のバージョンと同様単にx,y,zを指定してもいいですが、その最初のサ ンプル行の座標の座表系を選択するための5つのキーワード(first,second,graph,screen,character) を頭につけることもできます。詳細は、以下参照: coordinates (p. 21)。<position>が与えられた場合 の left, right,top,bottom, centerの効果は、label コマンドで配置される文字列の場合と同じように 基準位置の位置合わせに使用されます。すなわち、leftはkeyが<position>の右に置かれて左合わせで 出力されます。他の場合も同様です。
75.30.2 キーの凡例(key samples)
デフォルトでは、グラフ上の各描画はキー内にそれぞれに対応するエントリを生成します。このエントリ には、描画タイトルと、その描画で使われるのと同じ色、同じ塗りつぶし属性による線/点/箱 のサンプ ルが入ります。font とtextcolor属性は、キー内に現われる個々の描画タイトルの見た目を制御します。
textcolorを"rgb variable"にセットすると、キーの各エントリの文字列は、描画グラフの線や塗りつぶし 色と同じ色になります。これは、以前のある時期のgnuplotのデフォルトの挙動でした。
グ ラ フ 曲 線 の サ ン プ ル の 線 分 の 長 さ は samplen で 指 定 で き ま す。そ の 長 さ は 目 盛 り の 長 さ と 、
<sample length>*(文字幅) の和として計算されます。sapmlen は、グラフ上の点のサンプルの位置に
も(もしサンプル線分自身が書かれなくても)影響を与えています。それは、点の記号はサンプル線分の中
央に書かれるためです。
行間の垂直スペースは、spacingで指定できます。その幅は、点のサイズ(pointsize)と垂直な目盛りのサ
イズと<vertical spacing>の積になります。この垂直スペースは、文字の高さよりも小さくはならないこ
とが保証されています。
<width increment>は、文字列の長さに加えたり減らしたりする幅 (何文字分か)を表す数値です。これ
は、説明に外枠を書き、文字列に制御文字を使う場合にだけ有用でしょう。gnuplotは外枠の幅を計算す るときは、ラベル文字列の文字数を単純に数えるだけなので、それを修正するのに使えます。