- not so Frequently Asked Questions - update 2004/9/5
|
|
not so FAQ |
2次元プロットのあれこれ (その1)図の大きさがいつも一定になるようにしたい.gnuplotが描くグラフの領域は,軸の数字やラベルによって変化します. この領域を固定したいときは,marginを調整します.marginには, 上(tmargin)下(bmargin)左(lmargin)右(rmargin)があり,デフォルトでは 全てが自動計算されるようになっています.現在の設定は, gnuplot> show margin lmargin is computed automatically bmargin is computed automatically rmargin is computed automatically tmargin is computed automatically で見ることができます.marginに与える数値は,文字数です. 例として全てのmarginを指定した場合を示します. gnuplot> set lmargin 10 gnuplot> set bmargin 3 gnuplot> set rmargin 2 gnuplot> set tmargin 1 この様にしておいて,X,Y軸の目盛のフォーマットを変えてみます. 軸のラベルの位置は変わってしまいましたが,グラフの枠の大きさは 同じままです.ラベルの位置も固定するには,set {x|y}label にあるオフセットのオプションを指定する必要があります. 左右両方のY軸を使いたい.複数の図を一つにまとめて描きたいときが良くあります.gnuplotでは上下 左右の軸に別々の目盛を割り振ることができ,右側のY軸はY2軸,上のX軸はX2 軸として使うことができます. Y2軸は,何もしなければ左側のY軸と同じです.Y2のレンジをYと違うように してみて,sin(x)とsin(x)の2乗をプロットしてみましょう.どちらのY軸を使って 図をスケールするのかは,plotのオプションにあるaxisで指定します. axisに続けてx1y1, x1y2, x2y1, x2y2 のいづれかを与えて,表示するときに使う 軸を決めます.x1y2なら,下側のX軸と右側のY軸の目盛に合わせて表示することに なります. gnuplot> set xrange [0:2*pi] gnuplot> set yrange [-1:1] gnuplot> set y2range [0:1] gnuplot> plot sin(x) axis x1y1, \ sin(x)**2 axis x1y2 このままでは,右の軸に描かれる目盛は,左の軸と同じままです.0〜1の 範囲に合わせた目盛を出力し,さらに,左のY1軸の目盛を右側に描かないよう にするには,次のようにnomirrorを指定します.勿論, set y2tics 0,0.1の様にY2軸の最小目盛と増分を指定すること もできます. gnuplot> set y2tics 0, 0.2 gnuplot> set ytics nomirror このようにしてプロットした図では,どの線を右の軸で読むのかをはっきりと させる必要があります.そのときは,set arrow を使って右向きと左向きの矢印を図に描き込めばよいでしょう. 軸を消したい.gnuplotは上下左右に枠を作って,その中に図をプロットしますが,この 枠を表示したり消したりするには,set border を使います.上下左右の軸には,1(下),2(左),4(上),8(右)の数値が与えられており, 特定の軸を表示したい時は,その軸の数字を加えたものを与えます.1ならX1軸だけ, 3ならX1とY1軸,31なら全部になります.但し,この数字を変えただけでは, 目盛だけが残ってしまい,軸を完全に消すことはできません. set no{x|y}ticsやset {x|y}tics nomirrorなどで, 目盛を表示させないようにする必要があります. 以下の例はX1Y1軸だけを使って表示するものです. gnuplot> set border 3 gnuplot> set xtics nomirror gnuplot> set ytics nomirror 正方形や,縦横比の固定された長方形の図を描きたい.昔のgnuplotでは不可能の一つとして有名でしたが,今ではサポートされて います.図を正方形にするには,set size でsquareを指定します. gnuplot> set size square 同様に,縦横比を固定するには,次のようにします. gnuplot> set size ratio 2 この場合,Y軸がX軸の2倍になります.squreやratioで指定する軸の長さ 比は,軸の数値(つまりX,Yのレンジ)には関係しません.X,Y軸の単位に対して その比を固定するには,ratioの数値を負にします.-1にすると,X軸の単位長 さとY軸の単位長さが等しくなります.-2なら,Y軸は2倍の長さになります.
|