- not so Frequently Asked Questions - update 2004/9/5
|
|
not so FAQ |
凡例(Legend)あれこれ でもなんで,keyなんて呼ぶんだろう....
凡例を消したい.2つの方法があります.一つは, gnuplot> set nokey とする方法で,凡例は全部消えます.もう一つは,plotする際に notitle を指定する方法です.こちらでは,指定したものの凡例だけが消え ます.次の例では関数 f(x)の凡例だけが消えます. gnuplot> plot f(x) notitle, "file.dat" title "data" 凡例の表示場所を変えたい.標準では,凡例は右上に表示されます.これを変えるには set key を使います. gnuplot> set key left bottom とすると,左下になります.指定できるオプションは,次の通りです.
幾つかのものは組み合わせて指定できます.outside bottomなら, 右外側の下の方に凡例が表示されます. 凡例を表示する座標を, 直接指定することもできます. gnuplot> set key 100,100 なら,(X,Y)=(100,100)の位置に表示されます.一つ目の凡例の, 表題と点や線の真中が,このときの座標になります.この座標はプロットしている XY軸の数値と一致しています.プロットに関係なく任意の座標での位置を 与えるには,座標系の項目を参照してください. 凡例の中の誤差棒を消したい.誤差付きのデータをプロットすると,凡例中の記号にも誤差棒が付きます が,Y-方向に誤差があっても凡例中ではX-方向になってしまいます.これなら 誤差棒が無い方がマシなので,これを表示させないようにします.あいにくと うまい方法が思い付かないので,次のようにしてみました. 次のデータ(test.dat)をプロットする場合を考えます. # X Y Y-error 1.0 1.2 0.2 2.0 1.8 0.3 3.0 1.6 0.2 これをプロットすると, gnuplot> set xrange [0:4] gnuplot> set yrange [0:3] gnuplot> plot "test.dat" usi 1:2:3 title "data" w yerrorbars この様に,凡例中の誤差棒は横向きになってしまいます. gnuplot> set xrange [0:4] gnuplot> set yrange [0:3] gnuplot> plot "test.dat" usi 1:2:3 notitle w yerrorbars 1,\ "test.dat" usi 1:2 title "data" w points 1なんてやると,誤差棒は消えます. テキスト中にポストスクリプトの記号を使うと,表示位置がおかしくなる.凡例の中のテキスト(plotコマンドのtitleオプションで付けられるもの) の中で,{/Symbol a}のようにポストスクリプトで記号を表示する場合,凡例 の表示位置がおかしくなる場合があります.例えば, set key left で図の左側に凡例を寄せようとしても,左に空白が出てしまいます.こ れは,凡例の表示場所を計算する際に,{/Symbol a}を "α" 一文字として数 えてくれないために起こります.凡例を左に寄せても,中のテキストは右揃え ですので,余分な文字数の分だけ右に寄ってしまいます.凡例表示の際に, 表示位置を直接指定する他には,正しい位置に持って来る 手段は無いようです. 行間隔を調整する.凡例の行間隔は, set key spacing で変えられます.行間隔を1.5倍 にするには, set key spacing 1.5 とします. 凡例に枠を付ける.凡例に枠を付けるには, set key box とします.枠の線種は,グラフの 枠線と同じもの(-1の線種)になります.これを変えるには,boxに続けて線種の数字を 与えます.また,次の様に,ユーザ定義の線種を与えることもできます. gnuplot> set linestyle 1 lt 2 lw 3 gnuplot> set key box linestyle 1 gnuplot ver.4.0の場合は以下のようにします. gnuplot> set style line 1 lt 2 lw 3 gnuplot> set key box linestyle 1 |