まず, 最も簡単なプログラム例 UXYZ1 を見てみましょう. Axis::Lin のメソッドを使って, x軸, y軸ともに線形座標軸(均等 な目盛り)を描き, それぞれの軸には目盛りとラベル(目盛りのところにつける 数字), およびタイトル(軸の説明)をつけます. また, 図のタイトルもつける ことにします.
# # uxyz1.rb require "narray" require "numru/advanceddcl" include NumRu::AdvancedDCL include NMath #-- graph --- Dev.open Frame.new Fig.window=[-180.0, 180.0, -90.0, 90.0] Fig.viewport=[0.2, 0.8, 0.3, 0.7] Fig.transnum=1 Axis::Lin.xaxdv('B', 10.0, 60.0) Axis::Lin.xaxdv('T', 10.0, 60.0) Axis::Lin.xsttl('B', 'LONGITUDE', 0.0) Axis::Lin.xsttl('B', '<- WEST EAST ->', 0.0) Axis::Lin.yaxdv('L', 10.0, 30.0) Axis::Lin.yaxdv('R', 10.0, 30.0) Axis::Lin.ysttl('L', 'LATITUDE', 0.0) Axis::Lin.ysttl('L', '<- SH NH ->', 0.0) Axis::Lin.xmttl('T', 'UXAXDV/UYAXDV', 0.0) Dev.close
まず, 座標軸関連のパッケージを使用するときには, ウインドウとビューポー
ト(第3.1.2節)が適切に設定されていなければなりません. そし
て, 座標軸の作画を行なうにあたって最も基本的なことは, 1本の座標軸(1本
の軸とそれに付ける目盛りおよびラベルによって構成される)を描くために作
画ルーチンを1回呼ぶということです. この例では, 上下左右あわせて4回作画
ルーチン(x軸は Axis::Lin.xaxdv, y軸は Axis::Lin.yaxdv)を呼んでいます.
最初の引数 'B', 'T', 'L', 'R'によって, それぞ
れ, 下, 上, 左, 右側の軸を描画することを指定します. 座標軸を描くこれ
らの場所は,ウインドウとビューポートを設定した矩形領域のちょうど境界線
上になります. 次の2つの引数では, 短い目盛りと長い目盛りをどんな間隔で
打つかをU-座標系の値で指定します. ラベルは, 長い目盛りのところにだけ描
かれます.
軸につけるタイトルおよび図のタイトルも, それぞれの軸についてタイトル描
画ルーチンを呼びます. 小さめの文字でタイトルを描きたいときは Axis::Lin.xsttl, Axis::Lin.ysttl ルーチンを,大きめの文字で描きたいときには Axis::Lin.xmttl, Axis::Lin.ymttl ルーチンを用います. 最初の引数によってタイトルを
つける軸の場所を指定します. 2番目の引数はタイトルとして描く文字列です.
最後の引数では, タイトルを描く位置を-1.0から1.0までの実数値で指定し
ます. たとえばx軸については, -1.0: 左寄せ, 0.0: 中央合わせ, 1.0:
右寄せとなり, またy軸については, -1.0: 下寄せ, 0.0: 中央合わせ,
1.0: 上寄せとなります. この例の下側x軸や左側y軸のように, 同じ軸に
対して2回以上タイトル描画ルーチンを呼んだときには, タイトルが重ならな
いようにだんだんと外側の方へずらして描かれます.
言われるままに作画してみて, 「はて, タイトルやラベルの大きさ, 目盛の長 さなどは一体どのように決まっているのだろか?」と,不思議に思うかもしれま せん. じつはこれらの属性は, Axis::Lin の管理するパラメタを参照して決めら れているのです. ふつうの用途には, これらで充分に満足できる座標軸が作 画できるでしょう. タイトルの大きさやその描く向きなどを指定して独自の座 標軸を作ることもできますが, それは次章にまわしましょう.