AdvancedDCL

本ライブラリはrbdclのラッパーとして作成され、rbdclよりもより使いやすい 描画ライブラリとなっている。rbdclとの違いのひとつにパラメタのセット方法が 挙げられる。本ライブラリではパラメタを描画メソッドのキーワード引数として セットできる。詳しくはパラメタの取り扱いについてを参照のこと。

本ライブラリの使用法

本ライブラリは既にインストールされているものとする。(インストール方法はINSTALL、INSTALL.jp(日本語)を参照)

使用するには

require 'dcl/advanced'

とすればよい。

本ライブラリの構成

次に本ライブラリの構成及び各モジュールのメソッドを示す。

パラメタの取り扱いについて

AdvancedDCLにおけるパラメタはDCLで言うところの内部変数である。また、パラメタ設定の機能を持つサブルーチンのパラメタ化を行い、パラメタとして扱うことが可能である。

パラメタの設定、参照はset、getメソッドを用いて行う。(モジュール名).set( (パラメタ名), 値 ) でパラメタを設定し、(モジュール名).get( (パラメタ名) ) でパラメタを参照する。また、set、get の代りに (モジュール名).(パラメタ名)= 、 (モジュール名).(パラメタ名) を用いても同じである。以上まとめると次のようになる。

パラメタ名lineindexの場合、

  1. Plot.set("lineindex", 3)
  2. Plot.lineindex=3
  3. Plot.get("lineindex")
  4. Plot.lineindex

上の場合、1と2は同じでありパラメタlineindexを3に設定する。また、3と4も同じ意味で現在のlineindexを参照する。

更に、AdvancedDCLではパラメタ設定方法としてテンポラリパラメタとしてのパラメタ設定もサポートしている。その方法は描画メソッドのキーワード引数として用いるものであり以下のように用いる。

Plot.draw(x, y, {"lineindex"=>3})

ここで設定されたlineindex=3というパラメタはプロットを行うときのみ有効となり、描画が終わると元に戻る。

AdvancedDCL::Common

Commonモジュールとは

Commonモジュールは共通パラメタを管理するモジュールである。DCL(rbdcl)には同様の機能を持つパラメタが幾つか存在するが、それらのパラメタを同時に設定するのがCommonモジュールの持つ役割である。Commonパラメタlineindexを例に挙げると、Common.lineindex= でPlotやBoxなどのlineindexを同時に変更可能である。ただし、あらかじめPlot.lineindex= などで個々のパラメタを設定している場合はそちらが優先となる。

共通パラメタ

パラメタ名(モジュール名)

uref(Box, Bar, Diff, Error)

Box、Bar、Diff、Errorにおいて、描画メソッドの引数x1, y1 または x2, y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.

itpat(Bar, Box, Diff)

内部領域を塗るトーンパターンを指定する. ここで設定する番号は Diff.tone,Bar.tone,Box.tone で使われる.

rundef(Fig, Linear, Vector)

不定であることを示す実数型の値(初期値は-999.0)

iundef(Fig, Linear, Contour)

不定であることを示す整数型の値(初期値は-999)

npmskip(Mark, Solid)

MarkやSolidでマーカーを描くとき,何個に1個の割合で描くかを指定する(初期値は1;すべてマーカーを描く.Mark.drawがバッファリングする最大個数50以下でなければならない).

marktype(Mark, Solid)

Mark.draw、Solid.markなどで描くマーカータイプを設定する.(初期値は1)

markindex(Mark, Solid)

Mark.draw、Solid.markなどで描くマーカーのラインインデクスを設定する. (初期値は1)

marksize(Mark, Solid)

Mark.draw、Solid.markなどで描くマーカーの大きさを設定する. (初期値は0.01)

frtype(Bar, Box)

枠のラインタイプを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

frindex(Bar, Box)

枠のラインインデクスを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

lineindex(Plot, Bar, Box, Solid, Vector)

折れ線のラインインデクスを指定する.

linetype(Bar, Box, Plot)

折れ線のラインタイプを指定する.

variablerange(Bar, Box, Diff, Error)

独立変数の定義域を指定する.

indexmj(Contour, Map)

major lineのラインインデクス

indexmn(Contour, Map)

minor lineのラインインデクス

Common.set(key, val)

パラメタの設定を行う。

引数

使用例

Common.set("frindex", 3)      # 枠のラインインデクスを3に設定する

Common.get(key)

パラメタを参照する。

引数

使用例

Common.get("frindex")      #枠のラインインデクスを参照する

AdvancedDCL::Dev

本モジュールについて

Devモジュールはデバイス関連のモジュールである。

パラメタ

maxwnu (Fixnum) <SWPACK>

Dev が実現している出力装置の数、標準ライブラリにおける値は3(X,PS,Tek)である。

iws (Fixnum) <SWPACK>

オープンする装置番号。1から maxwnu の間の値を指定する。(初期値は1)。

wsname01, wsname02, wsname03 (String) <SWPACK>

ワークステーション名。標準ライブラリにおける値は、wsname01 = X (Xサーバー),wsname02 = PS (ポストスクリプト), wsname03 = Tek (テクトロ端末)となっている。

font1, font2 (String) <SWPACK>

フォントファイル名. 標準ライブラリにおける値は、font1 = 'font1u', font2 = 'font2u'.

cl2tn (String) <SWPACK>

カラー番号をトーンパターン番号に読み替えるためのファイル名。標準ライブラリにおける値は'cl2tnmap'.

iwidth (Fixnum) <SWPACK>

イメージウィンドウの横方向のサイズ(省略値は900)

iheight (Fixnum) <SWPACK>

イメージウィンドウの縦方向のサイズ(省略値は650).Xでは、iwidth, iheight のウィンドウがオープンされる。PSでは、縦横比が iheight : iwidth の描画領域が最大描画領域に最大内接するように用意されている。

fname (String) <SWPACK>

出力ファイル名(省略値は'dcl')。この値が'*'あるいは空白のとき、現在実行中のプログラム名が用いられる。Xのダンプファイル名、PSの複数ページ出力のためのファイル名として用いられるとき、この名前に'_nnn' (nnnはページ番号)をつけたものとなる。さらにXのダンプファイル名の場合は'.xwd'のサフィックスがつく;PSファイル名の場合は'.ps'のサフィックスがつく。

title (String) <SWPACK>

タイトル名(省略値は'*')。この値が'*'あるいは空白のとき、DCLVNM(DCL の MISC1/MISKLIB 参照)が返すバージョン名となる。Xの場合、このタイトル名はウインドウのタイトル名として用いられる;PSの場合、タイトル名はコメント部分のCreater部分に書かれる。

clrmap (String) <SWPACK>

カラーマップを収めたファイル名。標準ライブラリにおける値は'colormap'。

iposx (Fixnum) <SWPACK>

ウィンドウの位置を示すX座標。(省略値はー999)。

iposy (Fixnum) <SWPACK>

ウィンドウの位置を示すY座標。(省略値はー999)。 (iposx, iposy)=(-999,-999)のときユーザーがマウスで指定する。

lwait (true or false) <SWPACK>

改ページのタイミングで一時停止するかどうかを指定する。trueなら一時停止する; false なら一時停止しない。(省略値は true)

lwait0 (true or false) <SWPACK>

デバイスをオープンするタイミングで一時停止するかどうかを指定する。true なら一時停止する; false なら一時停止しない。(省略値は false)

lwait1 (true or false) <SWPACK>

デバイスをクローズするタイミングで一時停止をするかどうかを指定する。true なら一時停止する; false なら一時停止しない。(省略値は true)

ldump (true or false) <SWPACK>

Xのダンプファイル(xwd)を作成するかどうかを指定する。true なら作成する; false なら作成しない。(省略値は false)

lalt (true or false) <SWPACK>

裏画面で描画するかどうかを指定する。true なら裏画面で描画する;false なら裏画面で描画しない。(省略値は false )

lkey (true or false) <SWPACK>

一時停止しているときに、キーボードからの指定を有効にするかどうかを指定する。 true なら有効にする; false なら有効にしない。(省略値は true)

bitmap (String) <SWPACK>

ビットマップを収めたファイル名。標準ライブラリにおける値は'bitmap'。

lcorol (true or false) <SWPACK>

カラー対応したPSファイルを出力するかどうかを指定する。true ならカラー用のPSファイルを出力する;false ならモノクロ用のPSファイルを出力する。(省略値は true)

lsep (true or false) <SWPACK>

出力ファイルを1ページごとに分割して出力するかどうかを指定する。true なら分割する; false なら分割しない。(省略値は false)

lprint (true or false) <SWPACK>

作成された出力ファイルをプリンターに直接出力するかどうかを指定する。true ならプリンターに直接出力する;false なら出力しない。(省略値は false)

lpr (String) <SWPACK>

lprint を true としたときに用いられるプリントコマンドを指定する。(省略値は'lpr')

nlnsize (Fixnum) <SWPACK>

テクトロ画面のうちコンソール部分の1行の長さわ指定する。(省略値は21)

これらのパラメタはメソッドとして用いることができる。すなわち、Dev.iwidth でパラメタ iwidth の参照が、Dev.iwidth= でパラメタ iwidth の変更ができる。

Dev.open(device="X", rot=false)

図形出力装置をオープンする(初期化処理をおこなう).

引数

備考

  1. このメソッドはGROPNを呼んでいる。
  2. また,パラメタ lcntl を true にする.

Dev.close

図形出力装置をクローズする(終了処理をおこなう).

引数 なし

備考

  1. このメソッドはGRCLSを呼んでいる。

Dev.set(key, val)

パラメタの設定を行う。

引数

使用例

Dev.set("iwidth", 1000)      # イメージウィンドウの横方向のサイズを1000に設定

Dev.get(key)

パラメタを参照する。

引数

使用例

Dev.get("iwidth")      # イメージウィンドウの横方向のサイズを参照する。

AdvancedDCL::Frame

本モジュールについて

Frameモジュールは図を描く枠に関するモジュールである。

パラメタ

lfull (true or false) <SGPACK>

Frame.new で設定するワークステーションビューポートを作画可能な範囲いっぱいにとるかどうかを指定する. true のときいっぱいにとる; false のとき正方形にとる(初期値は false )

また、これらのパラメタはメソッドとして用いることができる。すなわち、Frame.lfull でパラメタ lfull の参照が、Frame.lfull= でパラメタ lfull の変更ができる。

Frame.new

新しい作画領域を設定するとともに, 新しい図を描くために必要な初期化をする.

引数

なし

備考

  1. このメソッドは GRFRM を呼んでいる。
  2. GRFRM は変換関数に関する内部変数をすべて「未定義」にするとともに, DCL(rbdcl)における UZPACK, USPACK の初期化をおこなったのち, SGFRM を呼ぶ.

Frame.size(csize)

A系列およびB系列の紙の大きさで, 第1レベル目のフレームを再設定する.

引数

備考

  1. このメソッドは SLSIZE を呼んでいる。
  2. フレームの大きさはA系列またはB系列(A4,B5など)で指定する. フレームの向きは,

    • 縦長に割り付けるなら 'T'ate または 'P'ortrait
    • 横長に割り付けるなら 'Y'oko または 'L'andscape

    とする. また 'A'utoとすると DCL(rbdcl) の SLINIT で指定された最大作図範囲の 縦・横比を見て, 横長なら 'Y'oko, 縦長なら 'T'ate として割り付ける. たとえばA4の大きさで横長のフレームを設定するには 'A4Y'と指定する.

Frame.form(dxa, dya)

縦横の長さを実長で指定して, 第1レベル目のフレームを再設定する.

引数

備考

  1. このメソッドは SLFORM を呼んでいる。

Frame.div(cform, ix, iy)

フレームの分割をおこない, 次のレベルのフレームを定義する.

引数

備考

  1. このメソッドは SLDIV を呼んでいる。
  2. Frame.div は2回まで呼ぶことができる. すなわち最大のレベル数は3である.
  3. 各レベルのフレームの総計は40である.

Frame.mgn(xl, xr, yb, yt)

今のレベルのフレームすべてについて指定したマージンをとる.

引数

備考

  1. このメソッドは SLMGN を呼んでいる。
  2. 0≧xl, xr, yb, yt≦1かつ, xl+xr<1, yb+yt<1で なければならない.

Frame.rat(rx, ry)

今のレベルのフレームすべてについて, 縦横比を指定してフレームが最大内接するようにマージンをとる.

引数

備考

  1. このメソッドは SLRAT を呼んでいる。
  2. rx, ry>0でなければならない.

Frame.settitle(title, cside, px, py, ht, nt)

1レベル目のトップマージンまたはボトムマージンに描く文字列を設定する.

引数

pyについては,

-1.0:下よせ
 0.0:中央あわせ
+1.0:上よせ

備考

  1. このメソッドは SLSTTL を呼んでいる。
  2. このルーチンは文字列を設定するだけで, 実際に文字列を描くのは DCL(rbdcl)の SLPTTL である. SLPTTL は Frame.newのなかで呼ばれるので,ユーザーはSLPTTLを直接呼ぶ必要はない. またこのとき同時にSLPCNRが最大作画領域の4隅に コーナーマークをつける. なお Frame.settitle はほかの SGPACK のルーチンと違って, Frame.newの あとでも呼べる. こうすることによってページごとに異なるタイトルを書くことができる. Fig の管理するパラメタ lcorner を false とするとコーナーマークを描かない(初期値は.TRUE.); また ltitle を false とするとタイトルを描かない (初期値は true).
  3. 設定できる文字列の最大数は5である.
  4. 設定した文字列を無効にしたいときは

    Frame.deltitle(nt) 

    とすると第nt番目の設定が無効になる.

Frame.deltitle

Frame.settitleで設定した文字列を無効にする。

引数

なし

備考

なし

Frame.set(key, val)

パラメタの設定を行う。

引数

使用例

Frame.set("lfull", true)      # フレームを作画可能範囲一杯にとるよう設定する。

Frame.get(key)

パラメタを参照する。

引数

使用例

Frame.gox("lfull")      # フレームを作画可能範囲一杯にとるかどうか参照する。

AdvancedDCL::Fig

本モジュールについて

Figモジュールは図のデザインに関するモジュールである。

パラメタ

mapangle (Float(3)) <GRPACK::GRSMPL>

地図投影の極の設定.

simtrans (Float(3)) <GRPACK::GRSSIM>

相似変換の設定.

transnum (Fixnum) <GRPACK::GRSTRN>

正規化変換の変換関数番号を指定する.

transnum3d (Fixnum) <SCPACK::SCSTRN>

3次元図における正規化変換の変換関数番号を指定する.

viewport (Float(4)) <GRPACK::GRSVPT>

正規化変換のためのビューポートを設定する.

viewport3d (Float(6)) <SCPACK::SCSVPT>

3次元図における正規化変換のためのビューポートを設定する.

window (Fixnum(4) or Float(4)) <GRPACK::GRSWND>

ウインドウの設定.

window3d (Fixnum(6) or Float(6)) <SCPACK::SCSWND>

3次元図におけるウインドウの設定.

l2to3 (true or false) <SGPACK>

2次元透視変換の指定. l2to3 が true なら2次元平面を3次元空間に割り付ける; false ならV座標とR座標を同一のものとして扱う.(初期値は false ).

eyepoint (Fixnum(3) or Float(3)) <SCPACK::SCSEYE>

視点の設定.

objpoint (Fixnum(3) or Float(3)) <SCPACK::SCSOBJ>

焦点の設定.

plane (Fixnum(3) or Float(3)) <SCPACK::SCSPLN>

2次元平面の割付.

mapwindow (Fixnum(4) or Float(4)) <GRPACK::GRSTXY>

地図投影におけるクリッピング境界を設定する。

origin (Fixnum(4) or Float(4)) <SCPACK::SCSORG>

スケーリングファクターと原点の設定.

log3d (Fixnum(3) or Float(3)) <SCPACK::SCSLOG>

対数軸の設定.

contactpoint (Fixnum(3) or Float(3)) <UMPACK::UMSCNT>

投影面の「接点」を指定する. contactpoint=[uxc, uyc, rot] のとき、

circlewindow (Float(3)) <UMPACK::UMSCWD>

円形のウィンドウを設定する.

inclpoint (Array[Float(n), Float(n)]) <USPACK::USSPNT>

ウインドウ範囲に含めたいデータを指定する.

stlat1, stlat2 (Float) <SGPACK>

標準緯度(初期値は0.0, 0.0).

lclip (true or false) <SGPACK>

ビューポートでのクリッピングのフラグ(初期値は false ).

lmiss (true or false) <SYSLIB>

欠損値処理をおこなうか どうかを指定する. true ならおこなう, false ならおこなわない (初期値は false).

imiss (Fixnum) <SYSLIB>

欠損値処理をおこなうときの整数型の欠損値を指定する (初期値は999).

rmiss (Float) <SYSLIB>

欠損値処理をおこなうときの実数型の欠損値を指定する (初期値は999.0).

rundef (Float) <SYSLIB>

不定であることを示す実数型の値 (初期値は-999.0).

iundef (Fixnum) <SYSLIB>

不定であることを示す整数型の値 (初期値は-999).

ldeg (true or false) <SGPACK>

単位系の指定. ldeg が true なら度を単位とする; false ならラジアンを単位とする(初期値は true).

index (Fixnum) <SGPACK>

第1レベル目のマージンに描く文字列とコーナーマークのラインインデクス(初期値は1).

lcorner (true or false) <SGPACK>

コーナーマークを描くかどうかを指定する. true ならコーナーマークを描く; false なら描かない(初期値は true).

corner (Float) <SGPACK>

コーナーマークの長さ(初期値は0.01).単位は第1レベル目の長辺を1とする.

lwide (true or false) <SGPACK>

文字列(タイトル)を描く第1レベル目のマージンの定義をする. true のときマージンの幅を第1レベル目のフレーム幅いっぱいにとる; false のとき横方向のマージンを取った残りの部分をマージンの幅とする(初期値は false).

xpad (Float) <SGPACK>

第1レベル目のマージンに描く文字列の左右にとるすきまの和を文字高を単位として指定する(初期値は1.0).

ypad (Float) <SGPACK>

第1レベル目のマージンに描く文字列の上下にとるすきまの和を文字高を単位として指定する(初期値は1.0).

また、これらのパラメタはメソッドとして用いることができる。すなわち、Fig.windowでパラメタwindowの参照が、Box.window=でパラメタwindowの変更ができる。

Fig.new

新しい図を描くために必要な初期化をする.

引数

なし

備考

  1. このメソッドは GRFIG を呼んでいる。
  2. このルーチンは変換関数に関する内部変数をすべて「未定義」に するとともに, DCL(rbdcl)における UZPACK, USPACK の初期化をおこなう. 一つのフレーム内に複数の図を描くとき, 2つ目以降の図を描き始める 前に, そのつど, このルーチンを呼ばなければならない.

Fig.set(key, val)

パラメタの設定を行う。

引数

使用例

Fig.set("window", [0.0, 1.0, 0.0, 1.0])      # ウィンドウを[0.0, 1.0, 0.0, 1.0]に設定する

Fig.get(key)

パラメタを参照する。

引数

使用例

Fig.gox("window")      # ウィンドウを参照する

Fig.short2long(sname)

変換関数の略称から名称を求める.

引数

使用例

Fig.short2long('MER')       #メルカトル図法の略称'MER'から名称'MERCATOR'を得る。

Fig.sname2trn(sname)

変換関数の略称から変換関数番号を求める.

引数

使用例

Fig.sname2trn('MER')       #メルカトル図法の略称'MER'から変換関数番号11を得る。

Fig.long2short(lname)

変換関数の名称から略称を求める.

引数

使用例

Fig.long2short('MERCATOR')       #メルカトル図法の名称'MERCATOR'から略称'MER'を得る。

Fig.lname2trn(lname)

変換関数の名称から変換関数番号を求める.

引数

使用例

Fig.lname2trn('MERCATOR')       #メルカトル図法の名称'MERCATOR'から変換関数番号11を得る。

Fig.trn2sname(num)

変換関数番号から略称を求める.

引数

使用例

Fig.trn2sname(11)       #メルカトル図法の変換関数番号11から略称'MER'を得る。

Fig.trn2lname(num)

変換関数番号から名称を求める.

引数

使用例

Fig.trn2lname(11)       #メルカトル図法の変換関数番号11から名称'MERCATOR'を得る。

Fig.pvpr(index)

ビューポートの枠を描く.

引数

備考

  1. このメソッドは SLPVPR を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.

Fig.pwwr(index)

ワークステーションウインドウの枠を描く.

引数

備考

  1. このメソッドは SLPWWR を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.

Fig.pwvr(index)

最大作画領域の枠を描く.

引数

備考

  1. このメソッドは SLPWVR を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.

Fig.pvpc(index, rc)

ビューポートのコーナーマークを描く.

引数

備考

  1. このメソッドは SLPVPC を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.
  3. rc は0より大きくなければならない. ただし rc が0のとき, メッセージは出力されるがなにもしない.

Fig.pwwc(index, rc)

ワークステーションウインドウのコーナーマークを描く.

引数

備考

  1. このメソッドは SLPWWC を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.
  3. rc は0より大きくなければならない. ただし rc が0のとき, メッセージは出力されるがなにもしない.

Fig.pwwc(index, rc)

最大作画領域のコーナーマークを描く.

引数

備考

  1. このメソッドは SLPWVC を呼んでいる。
  2. index は1以上でなければならない. ただし index が0のとき, メッセージは出力されるがなにもしない.
  3. rc は0より大きくなければならない. ただし rc が0のとき, メッセージは出力されるがなにもしない.

AdvancedDCL::Axis

本モジュールについて

Axisモジュールは自動で軸を描くためのモジュールである。

パラメタ

ireset(Fixnum)<USPACK>

USINITで自動的にパラメータを リセットすることを指定する変数. 初期値は1.

USINITは通常 Frame.newから呼ばれる.

lxinv(true or false)<USPACK>

TRUEの時, X軸の左右を逆にする.

lyinv(true or false)<USPACK>

TRUEの時, Y軸の上下を逆にする.

lmatch(true or false)<USPACK>

TRUEの時, X軸とY軸のラベル間隔及び 文字間隔を同じにする.

rmrgn(Float)<USPACK>

マージンの幅. 単位は文字幅. (9.524)

xfac*(Float)<USPACK>

X座標のファクター値 (999.)

yfac*(Float)<USPACK>

Y座標のファクター値 (999.)

xoff*(Float)<USPACK>

一様X座標のオフセット値 (999.)

yoff*(Float)<USPACK>

一様Y座標のオフセット値 (999.)

dxt*(Float)<USPACK>

一様X座標の目盛の間隔 (999.)

dyt*(Float)<USPACK>

一様Y座標の目盛の間隔 (999.)

dxl*(Float)<USPACK>

一様X座標のラベルの間隔 (999.)

dyl*(Float)<USPACK>

一様Y座標のラベルの間隔 (999.)

tfact(Float)<USPACK>

一様座標の目盛間隔の目安 (2).これらの値に文字幅 ( rsize1) を掛けた幅よりも 小さな間隔で, 切りのよい値をdutとして設定する.

mxdgtx(Fixnum)<USPACK>

一様X座標のラベルの最大桁数 (4)

mxdgty(Fixnum)<USPACK>

一様Y座標のラベルの最大桁数 (4).ラベルの桁数がこれらの値よりも大きくなるとき, uoff, ufac を設定して これらの桁数以内におさまるように試みる.

nblank1(Fixnum)<USPACK>

ラベルが座標軸と平行な場合の, ラベル間の最小空白数. (一様座標) (1)

nblank2(Fixnum)<USPACK>

ラベルが座標軸と直角な場合の, ラベル間の最小空白数. (一様座標) (2)

nlblx*(Fixnum)<USPACK>

対数X座標のラベル形式 (999)

nlbly*(Fixnum)<USPACK>

対数Y座標のラベル形式 (999)

nticksx*(Fixnum)<USPACK>

対数X座標の一桁の間の目盛の数 (999)

nticksy*(Fixnum)<USPACK>

対数Y座標の一桁の間の目盛の数 (999)

itypex*(Fixnum)<USPACK>

対数X座標のタイプ (999)

itypey*(Fixnum)<USPACK>

対数Y座標のタイプ (999)

mxdgtsx(Fixnum)<USPACK>

X軸のサブラベルが水平方向の場合, mxdgtsxで指定された文字数のラベルの範囲を 越えないようにサブラベルを描く.

mxdgtsy(Fixnum)<USPACK>

Y軸のサブラベルが垂直方向の場合, mxdgtsyで指定された文字数のラベルの範囲を 越えないようにサブラベルを描く.

lprtct(true or false)<USPACK>

サブラベルを他方の軸のラベル領域に まで描かないことを指定する. これが TRUEの時には mxdgtsx/mxdgtsy の指定は無視される.

soffxtr*, soffxtl*, soffxbr*, soffxbl*, soffxur*, soffxul*(Float)<USPACK>

X軸のサブラベルのオフセット値.

soffytr*, soffyrb*, soffylt*, soffylb*, soffyut*, soffyub*(Float)<USPACK>

Y軸のサブラベルのオフセット値.

xdtmax*, xdtmin*(Float)<USPACK>

Fig.inclpoint で設定された x 座標の最大最小値.

ydtmax*, ydtmin*(Float)<USPACK>

Fig.inclpoint で設定された y 座標の最大最小値.

cxttl(String)<USPACK>

X軸のタイトル (32文字以内)

cyttl(String)<USPACK>

Y軸のタイトル (32文字以内)

cxfmt(String)<USPACK>

X軸のラベルのフォーマット (注1)

cyfmt(String)<USPACK>

Y軸のラベルのフォーマット (注1)

cxside(String)<USPACK>

X軸を書く位置. 'T'(Top), 'B'(Bottom), 'U'(User) のうち 2文字まで指定できる. 2つの位置のうち最初に指定した位置に サブラベルとタイトルが書かれる. (注2)

cyside(String)<USPACK>

Yを描く位置. 'R'(Right), 'L'(Left), 'U'(User) のうち 2文字まで指定できる. 2つの位置のうち最初に指定した位置に サブラベルとタイトルが書かれる. (注2)

cxspos(String)<USPACK>

X軸のサブラベルを書く位置 'R' または 'L'

cyspos(String)<USPACK>

Y軸のサブラベルを書く位置 'T' または 'B'

cxunit(String)<USPACK>

X軸のサブラベルに書く単位 (32文字以内)

cyunit(String)<USPACK>

Y軸のサブラベルに書く単位 (32文字以内)

cblkt(String)<USPACK>

Y軸のサブラベルに書く単位 (32文字以内)

labelxb(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(TRUE)

labelxt(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(FALSE)

labelxu(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(TRUE)

labelyl(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(TRUE)

labelyr(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(FALSE)

labelyu(true or false)<UZPACK>

ラベルを描くかどうかを指定する内部変数;TRUEなら描く, FALSEなら描かない(TRUE)

rsizet0(Float)<UZPACK>

目盛の長さを指定する内部変数(単位はV座標系)(不定)

rsizet1(Float)<UZPACK>

目盛の長さを指定する内部変数(単位はV座標系)(0.007)

rsizet2(Float)<UZPACK>

目盛の長さを指定する内部変数(単位はV座標系)(0.014)

rsizel0(Float)<UZPACK>

ラベルの文字の高さを指定する内部変数(単位はV座標系)(不定)

rsizel1(Float)<UZPACK>

ラベルの文字の高さを指定する内部変数(単位はV座標系)(0.021)

rsizel2(Float)<UZPACK>

ラベルの文字の高さを指定する内部変数(単位はV座標系)(0.028)

rsizec0(Float)<UZPACK>

タイトルの文字の高さを指定する内部変数(単位はV座標系)(不定)

rsizec1(Float)<UZPACK>

タイトルの文字の高さを指定する内部変数(単位はV座標系)(0.028)

rsizec2(Float)<UZPACK>

タイトルの文字の高さを指定する内部変数(単位はV座標系)(0.035)

uxuser(Float)<UZPACK>

Y軸の作画ルーチンにおいて場所を示すパラメーターとして'U'serを指定したときに用いられるX座標値(初期値は不定).

uyuser(Float)<UZPACK>

X軸の作画ルーチンにおいて場所を示すパラメーターとして'U'serを指定したときに用いられるY座標値(初期値は不定).

  1. これらのフォーマットを陽に指定した場合, ラベルの間隔などにこの情報は反映されないので, dxl, dyl も適切に指定しないと,ラベルが重なる場合がある.
  2. 内部変数 cxside, cyside で指定される最初の位置の label(zs)がFALSEの時には, サブラベル, タイトルともに描かない.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Axis.iresetでパラメタiresetの参照が、Axis.ireset=でパラメタiresetの変更ができる。

Axis.set(key, val)

パラメタの設定を行う。

引数

使用例

Axis.set("cxttl", "xtitle")      # X軸のタイトルを"xtitle"に設定

Axis.get(key)

パラメタを参照する。

引数

使用例

Axis.get("cxttl")      #X軸のタイトルを参照する。

Axis.zfact(rfact)

パラメタ 'rsize(i)', 'rsize(i)', 'rsizec(i)' (i=1,2) をすべて何倍かする.

引数

備考

  1. このメソッドはUZFACTを呼んでいる。

Axis.title(cxttl, cxunit, cyttl, cyunit)

Axis.drawで書く座標軸のタイトル及び サブラベルの中の単位を指定する.

引数

備考

  1. このメソッドはUSSTTLを呼んでいる。
  2. タイトルを付けたくないときには, 1文字以上のブランクを指定する.

Axis.xpttl(cside, islct, cttl, px, temp=nil)

タイトルを描く.

引数

備考

  1. このメソッドは UXPTTL を呼んでいる。
  2. タイトルの文字の大きさはパラメタ rsizec(i) が決める.
  3. タイトルの文字列の回転角はパラメタ irotc(zs) が決める.
  4. タイトルの文字を描く線分のラインインデクスはパラメタ indexl(i)が決める.
  5. パラメタ lbound が true で タイトルがウインドウの幅をこえるとタイトルを描かない; false ならウインドウの幅をこえても描く (初期値は false). また, パラメタ lbound が true で タイトルがウインドウの幅をこえて描けないとき パラメタ lbmsg が true なら その旨メッセージを出力する; false なら出力しない (初期値は true).

Axis.ypttl(cside, islct, cttl, py, temp=nil)

タイトルを描く.

引数

備考

  1. このメソッドは UYPTTL を呼んでいる。
  2. タイトルの文字の大きさはパラメタ rsizec(i) が決める.
  3. タイトルの文字列の回転角はパラメタ irotc(zs) が決める.
  4. タイトルの文字を描く線分のラインインデクスはパラメタ indexl(i)が決める.
  5. パラメタ lbound が true で タイトルがウインドウの幅をこえるとタイトルを描かない; false ならウインドウの幅をこえても描く (初期値は false). また, パラメタ lbound が true で タイトルがウインドウの幅をこえて描けないとき パラメタ lbmsg が true なら その旨メッセージを出力する; false なら出力しない (初期値は true).

Axis.xmttl(cside, cttl, px, temp=nil)

大きめのタイトルを描く.

引数

備考

  1. このメソッドは UXMTTL を呼んでいる。
  2. このメソッドは UXPTTL (ISLCT=2)を使って タイトルを描いている.

Axis.ymttl(cside, cttl, py, temp=nil)

大きめのタイトルを描く.

引数

備考

  1. このメソッドは UYMTTL を呼んでいる。
  2. このメソッドは UYPTTL (ISLCT=2)を使って タイトルを描いている.

Axis.xsttl(cside, cttl, px, temp=nil)

小さめのタイトルを描く.

引数

備考

  1. このメソッドは UXSTTL を呼んでいる。
  2. このメソッドは UXPTTL (ISLCT=1)を使って タイトルを描いている.

Axis.ysttl(cside, cttl, py, temp=nil)

小さめのタイトルを描く.

引数

備考

  1. このメソッドは UYSTTL を呼んでいる。
  2. このメソッドは UYPTTL (ISLCT=1)を使って タイトルを描いている.

Axis.draw(x=nil, y=nil, temp=nil)

デフォルトの座標軸を描く. タイトルが指定されていればタイトルも書く.

引数

備考

  1. このメソッドはUSDAXSを呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis.xax(cside, x=nil, y=nil, temp=nil)

現在設定されている正規化変換に対して 適当な目盛とラベル間隔を計算し, 指定された場所に座標軸を一本描く.

引数

備考

  1. このメソッドはUSXAXSを呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis.yax(cside, x=nil, y=nil, temp=nil)

現在設定されている正規化変換に対して 適当な目盛とラベル間隔を計算し, 指定された場所に座標軸を一本描く.

引数

備考

  1. このメソッドはUSYAXSを呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

AdvancedDCL::Axis::Lin

本モジュールについて

Axis::Linモジュールは線形軸を描くためのモジュールである。

パラメタ

使用に関して、パラメタ名の末尾に次のような文字がつく場合がある。意味は次の通りである。

例 labelxb : x-bottom においてラベルを描くかどうか

labelパラメタは軸の種類、その場所ごとに全部で6種類ある。これらをまとめてlabel(zs)とする。((zs)='xb','xt','xu','yl','yr','yu')

例 index1 : 線分のラインインデクス(小さめのサイズ)

このように小さめ、大きめ、ユーザ定義と3種類あるが、これらをまとめてindex(i)などとする。((i)='0','1','2')

uxuser (Float) <UZPACK>

Y軸の作画ルーチンにおいて場所を示すパラメーターとして'U'serを指定したときに用いられるX座標値(初期値は不定). 詳しくはDCL manual 3.2節参照.

uyuser (Float) <UZPACK>

X軸の作画ルーチンにおいて場所を示すパラメーターとして'U'serを指定したときに用いられるY座標値(初期値は不定). 詳しくは DCL manual 3.2節参照.

label(zs) (true or false) <UZPACK>

ラベルを描くかどうかを指定するパラメタ; true なら描く, false なら描かない(初期値は, true, false, true, true, false, true). DCL manual 3.6.3, 3.6.2, 3.6.1節参照.

irotl(zs) (Fixnum) <UZPACK>

ラベルの文字列の回転角を指定するパラメタ; 回転角は90度を単位とする整数値で指定する(初期値は, 0, 0, 0, 0, 0, 0). DCL manual 3.4, 3.8.3節参照.

irotc(zs) (Fixnum) <UZPACK>

タイトルの文字列の回転角を指定するパラメタ; 回転角は90度を単位とする整数値で指定する(初期値は, 0, 0, 0, +1, +1, +1). DCL manual 3.4, 3.8.5節参照.

icent(zs) (Fixnum) <UZPACK>

ラベルの文字列のセンタリングオプションを指定するパラメタ; -1のとき左よせ, 0のときセンタリング,+1のとき右よせする(初期値は, 0, 0, 0, +1, +1, +1). DCL manual 3.4, 3.8.3節参照.

indext(i) (Fixnum) <UZPACK>

座標軸および目盛を描く線分のラインインデクスを指定するパラメタ(初期値は, 不定, 1, 3). DCL manual 3.4, 3.8.2節参照.

indexl(i) (Fixnum) <UZPACK>

ラベルおよびタイトルの文字を描く線分のラインインデクスを指定するパラメタ(初期値は, 不定, 3, 3). DCL manual 3.4, 3.8.3節参照.

rsizet(i) (Float) <UZPACK>

目盛の長さを指定するパラメタ(単位はV座標系;初期値は, 不定, 0.007, 0.014). DCL manual 3.4, 3.8.2節参照.

rsizel(i) (Float) <UZPACK>

ラベルの文字の高さを指定するパラメタ(単位はV座標系;初期値は, 不定, 0.021, 0.028). DCL manual 3.4, 3.8.3節参照.

rsizec(i) (Float) <UZPACK>

タイトルの文字の高さを指定するパラメタ(単位はV座標系;初期値は, 不定, 0.028, 0.035). 3.4, 3.8.5節参照.

rsizec(i) (Float) <UZPACK>

タイトルの文字の高さを指定するパラメタ(単位はV座標系;初期値は, 不定, 0.028, 0.035). DCL manual 3.4, 3.8.5節参照.

loffset (true or false) <UZPACK>

座標系をリニアオフセットするかどうかを指定するパラメタ. true ならリニアオフセットする; false ならしない(初期値は false). DCL manual 3.6節参照.

xoffset (Float) <UZPACK>

loffset が true のとき,X軸のオフセット値を指定するパラメタ(初期値は0.0). DCL manual 3.6節参照.

yoffset (Float) <UZPACK>

loffset が true のとき,Y軸のオフセット値を指定するパラメタ(初期値は0.0). DCL manual 3.6節参照.

xfact (Float) <UZPACK>

loffset が true のとき,X軸のファクター値を指定するパラメタ(初期値は1.0). DCL manual 3.6節参照.

yfact (Float) <UZPACK>

loffset が true のとき,Y軸のファクター値を指定するパラメタ(初期値は1.0). DCL manual 3.6節参照.

pad1 (Float) <UZPACK>

1つ前に描いた座標軸の構成要素からどれだけ離してラベルを描くかを指定するパラメタ(初期値は0.7; 単位は今描こうとしているラベルの高さを1とする).

pad2 (Float) <UZPACK>

座標軸のオフセット量を内部的に決める時に用いるパラメタ(初期値は1.5; 単位はパラメタ rsizec2 の大きさを1とする).

iflag (Fixnum) <UZPACK>

座標軸の設定を'U'serでおこなった場合,ラベルとタイトルを軸のどちら側に描くかを指定するパラメタ. iflag が正のときラベルは Axis::Lin.xplbl については上側, Axis::Lin.yplbl については右側に描かれる.負のときはその逆である. (初期値は-1). DCL manual 3.8.3節参照.

lbtwn (true or false) <UZPACK>

ラベルを描く場所に関するオプションを指定するパラメタ. lbtwn が true なら間に描く; false ならその場所に描く(初期値は false). DCL manual 3.8.3節参照.

rbtwn (Fixnum) <UZPACK>

ラベルを間に描くとき( lbtwn が true のとき),さらにその位置を詳しく指定する. -1.0のとき左よせ, 0.0のときセンタリング, +1.0のとき右よせする(初期値は0.0).

lbound (true or false) <UZPACK>

タイトルを描こうとして, 文字幅がビューポートの幅を越えてしまうようなとき,タイトルを描くかどうかを指定する. true なら描かない, false なら描く(初期値は false).

lbmsg (true or false) <UZPACK>

lbound が true でタイトルを描くスペースがないとき,エラーメッセージを出力するかどうかを指定する. true なら出力する, false なら出力しない(初期値は true).

inner (Fixnum) <UZPACK>

目盛を内側に向かって打つか,外側に向かって打つかを指定するパラメタ. inner が正のとき内側に向かって目盛を打つ; 負のとき外側に向かって目盛を打つ(初期値は+1).

iundef (Float) <UZPACK>

値が不定であることを示すパラメタ(初期値は-999).

cxfmt (String) <UXPACK::UXSFMT>

X軸のラベルフォーマットを設定する。値は長さ16以下の文字型変数. たとえば値として '(F6.1)'のように指定する. 初期値は固有のオプションである'B' (有効数字3ケタで文字化し, 小数点以下に続く後方の0は取り除く; さらに小数点が最下位ならそれも取り除く). また、自動的に文字を左詰めする. つまり実数値1.2を文字化するために'(F4.1)'としても '(F8.1)'としても返す値はどちらも'1.2'である.

cyfmt (String) <UYPACK::UYSFMT>

Y軸のラベルフォーマットを設定する。値は長さ16以下の文字型変数. たとえば値として '(F6.1)'のように指定する.

roff(zs) (Float) <UZPACK>

最後に描いたラベルやタイトルの軸からの距離を保持しているパラメタ(初期値は, 0, 0, 0, 0, 0, 0). DCL manual 3.8.1節参照.

rofg(zs) (Float) <UZPACK>

座標軸を本来描く場所からどれだけ平行移動して描くかを指定するパラメタ(初期値は, 0, 0, 0, 0, 0, 0). DCL manual 3.8.1節参照.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Axis::Lin.labelxb でパラメタ labelxb の参照が、Axis::Lin.labelxb=でパラメタ labelxb の変更ができる。

Axis::Lin.set(key, val)

パラメタの設定を行う。

引数

使用例

Axis::Lin.set("labelxb", false)      # X-bottom にラベルを描かないように設定

Axis::Lin.get(key)

パラメタを参照する。

引数

使用例

Axis::Lin.get("labelxb")      #X-bottom にラベルを描くかどうかを参照する。

Axis::Lin.zfact(rfact)

パラメタ 'rsize(i)', 'rsize(i)', 'rsizec(i)' (i=1,2) をすべて何倍かする.

引数

備考

  1. このメソッドはUZFACTを呼んでいる。

Axis::Lin.xaxdv(cside, dx1, dx2, x=nil, y=nil, temp=nil)

目盛とラベルを描く間隔を指定してX座標軸を描く.

引数

備考

  1. このメソッドは UXAXDV を呼んでいる。
  2. 目盛およびラベルは指定した間隔の整数倍の場所に描かれる.
  3. Axis::Lin.xaxdv は Axis::Lin.xpaxs (islct=2) で軸を描いている; Axis::Lin.xptmk (islct=1)で小さめの目盛を描いている; Axis::Lin.xptmk (islct=2)で大きめの目盛を描いている; Axis::Lin.xpnum (islct=1)でラベルを描いている.
  4. このルーチンは目盛とラベルを描く場所を内部で生成して Axis::Lin.xptmk などを呼んでいる. Axis::Lin.xptmk が呼ぶ UXPTMK の作業用配列の制約から目盛を打つ最大数は 200 以下でなければならない.
  5. ラベルのフォーマットは パラメタ cxfmt によって変更できる.
  6. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.yaxdv(cside, dy1, dy2, x=nil, y=nil, temp=nil)

目盛とラベルを描く間隔を指定してX座標軸を描く.

引数

備考

  1. このメソッドは UYAXDV を呼んでいる。
  2. 目盛およびラベルは指定した間隔の整数倍の場所に描かれる.
  3. Axis::Lin.yaxdv は Axis::Lin.ypaxs (islct=2) で軸を描いている; Axis::Lin.yptmk (islct=1)で小さめの目盛を描いている; Axis::Lin.yptmk (islct=2)で大きめの目盛を描いている; Axis::Lin.ypnum (islct=1)でラベルを描いている.
  4. このルーチンは目盛とラベルを描く場所を内部で生成して Axis::Lin.yptmk などを呼んでいる. Axis::Lin.yptmk が呼ぶ UYPTMK の作業用配列の制約から目盛を打つ最大数は 200 以下でなければならない.
  5. ラベルのフォーマットは パラメタ cyfmt によって変更できる.
  6. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xaxlb(cside, ux1, ux2, ch, x=nil, y=nil, temp=nil)

目盛とラベルを描く場所を指定してX座標軸を描く. 描くラベルも指定する.

引数

備考

  1. このメソッドは UXAXLB を呼んでいる。
  2. Axis::Lin.xaxlb はそれぞれ Axis::Lin.xpaxs (islct=2)で軸を描いている; Axis::Lin.xptmk (islct=1)で小さめの目盛を描いている; Axis::Lin.xptmk (islct=2)で大きめの目盛を描いている; Axis::Lin.xplbl (islct=1)でラベルを描いている.
  3. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.yaxlb(cside, uy1, uy2, ch, x=nil, y=nil, temp=nil)

目盛とラベルを描く場所を指定してY座標軸を描く. 描くラベルも指定する.

引数

備考

  1. このメソッドは UYAXLB を呼んでいる。
  2. Axis::Lin.yaxlb はそれぞれ Axis::Lin.ypaxs (islct=2)で軸を描いている; Axis::Lin.yptmk (islct=1)で小さめの目盛を描いている; Axis::Lin.yptmk (islct=2)で大きめの目盛を描いている; Axis::Lin.yplbl (islct=1)でラベルを描いている.
  3. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xpaxs(cside, islct, x=nil, y=nil, temp=nil)

軸を示す線分を描く.

引数

備考

  1. このメソッドはUXPAXSを呼んでいる。
  2. 軸を示す線分のラインインデクスはパラメタ index0, index1, index2が決める.
  3. 構成要素を描く場所に依存するパラメタとして roff(zs) (zs='xb','xt','xu','yl','yr','yu')がある. これは, 最後に描いたラベルやタイトルの軸からの距離を保持しているパラメタである. このパラメタを初期化しなければ, ラベルやタイトルは次々と ウインドウの外側に向かって重ならないよう描かれる.
  4. 座標軸は, 本来描くべき場所から平行移動した場所に描くことができる (DCL manual 3.2節参照). この移動量は, 描く場所に依存するパラメタ rofg(zs) が管理する (初期値はすべて0). この値はX/Y軸それぞれについて, メソッド

    Axis::Lin.xsaxz(cside, roffx) / Axis::Lin.ysaxz(cside, roffy) 

    によって設定できる. またオフセット量を内部的に決定するルーチン

    Axis::Lin.uxsaxs(cside) / Axis::Lin.ysaxs(cside) 

    によっても設定できる. オフセット量はパラメタ pad2 にもとづいて計算される.

  5. パラメタroff(zs) と rofg(zs) が等しいときに限って軸を示す線分を描く. これらの内部変数は DCL(rbdcl) のサブルーチン UZINIT によって 0 にセットされる. 普通ユーザーは UZINIT を陽に呼ぶ必要はない.
  6. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.ypaxs(cside, islct, x=nil, y=nil, temp=nil)

軸を示す線分を描く.

引数

備考

  1. このメソッドはUYPAXSを呼んでいる。
  2. 軸を示す線分のラインインデクスはパラメタ index0, index1, index2が決める.
  3. 構成要素を描く場所に依存するパラメタとして roff(zs) (zs='xb','xt','xu','yl','yr','yu')がある. これは, 最後に描いたラベルやタイトルの軸からの距離を保持しているパラメタである. このパラメタを初期化しなければ, ラベルやタイトルは次々と ウインドウの外側に向かって重ならないよう描かれる.
  4. 座標軸は, 本来描くべき場所から平行移動した場所に描くことができる (DCL manual 3.2節参照). この移動量は, 描く場所に依存するパラメタ rofg(zs) が管理する (初期値はすべて0). この値はX/Y軸それぞれについて, メソッド

    Axis::Lin.xsaxz(cside, roffx) / Axis::Lin.ysaxz(cside, roffy) 

    によって設定できる. またオフセット量を内部的に決定するルーチン

    Axis::Lin.uxsaxs(cside) / Axis::Lin.ysaxs(cside) 

    によっても設定できる. オフセット量はパラメタ pad2 にもとづいて計算される.

  5. パラメタroff(zs) と rofg(zs) が等しいときに限って軸を示す線分を描く. これらの内部変数は DCL(rbdcl) のサブルーチン UZINIT によって 0 にセットされる. 普通ユーザーは UZINIT を陽に呼ぶ必要はない.
  6. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xplbl(cside, islct, ux, ch, x=nil, y=nil, temp=nil)

文字列で指定したラベルを描く.

引数

備考

  1. このメソッドはUXPLBLを呼んでいる。
  2. このパッケージでは次の2通りのラベルの描きかたがある. Axis::Lin.xplbl/yplblそれぞれについて

    • ux(i)/uy(i)の 場所にch(i)の ラベルを描く.
    • ux(i)/uy(i)と ux(i+1)/uy(i+1)の 間にch(i)のラベルを描く.

    2つの方法のどちらを選ぶかはパラメタ lbtwn が決める. lbtwn が true なら間に描く; false ならその場所に描く(初期値は false). ただし, ラベルを間に描くように指定していても, ラベルが2点の間隔より 大きいときラベルは描かれない. またメッセージも出力されない.

  3. ラベルの文字の高さはパラメタ rsizel(i) が決める.
  4. ラベルの文字列の回転角はパラメタ irotl(zs) が決める.
  5. ラベルの文字列のセンタリングオプションはパラメタ icent(zs) が決める.
  6. ラベルの文字を描く線分のラインインデクスはパラメタ indexl(i) が決める.
  7. cside として'U'以外を指定した場合, ラベルは常にウインドウの外側に描かれる. cside として'U'を指定した場合, ラベルの描かれる位置はパラメタ iflag が決める. iflag が正のときラベルはAxis::Lin.xplbl については上側, Axis::Lin.yplbl については右側に描かれる. 負のときはその逆である. 初期値は-1.
  8. 1つ前に描いた座標軸の構成要素からどれだけ離してラベルを描くかは 内部変数 pad1 が決める. 初期値は0.7. 単位は今描こうとしているラベルの高さを1とする.
  9. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.yplbl(cside, islct, uy, ch, x=nil, y=nil, temp=nil)

文字列で指定したラベルを描く.

引数

備考

  1. このメソッドはUYPLBLを呼んでいる。
  2. このパッケージでは次の2通りのラベルの描きかたがある. Axis::Lin.xplbl/yplblそれぞれについて

    • ux(i)/uy(i)の 場所にch(i)の ラベルを描く.
    • ux(i)/uy(i)と ux(i+1)/uy(i+1)の 間にch(i)のラベルを描く.

    2つの方法のどちらを選ぶかはパラメタ lbtwn が決める. lbtwn が true なら間に描く; false ならその場所に描く(初期値は false). ただし, ラベルを間に描くように指定していても, ラベルが2点の間隔より 大きいときラベルは描かれない. またメッセージも出力されない.

  3. ラベルの文字の高さはパラメタ rsizel(i) が決める.
  4. ラベルの文字列の回転角はパラメタ irotl(zs) が決める.
  5. ラベルの文字列のセンタリングオプションはパラメタ icent(zs) が決める.
  6. ラベルの文字を描く線分のラインインデクスはパラメタ indexl(i) が決める.
  7. cside として'U'以外を指定した場合, ラベルは常にウインドウの外側に描かれる. cside として'U'を指定した場合, ラベルの描かれる位置はパラメタ iflag が決める. iflag が正のときラベルはAxis::Lin.xplbl については上側, Axis::Lin.yplbl については右側に描かれる. 負のときはその逆である. 初期値は-1.
  8. 1つ前に描いた座標軸の構成要素からどれだけ離してラベルを描くかは 内部変数 pad1 が決める. 初期値は0.7. 単位は今描こうとしているラベルの高さを1とする.
  9. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xpnum(cside, islct, ux, x=nil, y=nil, temp=nil)

数値で指定したラベルを描く.

引数

備考

  1. このメソッドは UXPNUM を呼んでいる。
  2. このメソッドは, DCL(rbdcl) のサブルーチンCHVAL (「MISC1」マニュアルのFMTLIB参照)を 使ってux, uyの値を文字化したあとで Axis::Lin.xplbl/yplbl を呼んでいる. (ラベルの属性については, Axis::Lin.plbl/yplbl を参照のこと. ) Axis::Lin.xplbl/yplbl に渡す文字型配列を内部で用意しているため ux, uyの長さは40以下でなければならない.
  3. サブルーチン CHVAL に渡すフォーマットは, Axis::Lin.xpnum についてはパラメタ cxfmt で設定/参照することができる. Axis::Lin.ypnum についてはパラメタ cyfmt で設定/参照することができる. cxfmt, cyfmt は長さ16以下の文字型変数. たとえば '(F6.1)' のように指定する. 初期値は CHVAL に固有のオプションである 'B' (有効数字3ケタで文字化し, 小数点以下に続く後方の0は取り除く; さらに小数点が最下位ならそれも取り除く). CHVAL は自動的に文字を左詰めする. つまり実数値 1.2 を文字化するために '(F4.1)' としても '(F8.1)' としても CHVAL が返す値はどちらも '1.2' である.
  4. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.ypnum(cside, islct, uy, x=nil, y=nil, temp=nil)

数値で指定したラベルを描く.

引数

備考

  1. このメソッドは UYPNUM を呼んでいる。
  2. このメソッドは, DCL(rbdcl) のサブルーチンCHVAL (「MISC1」マニュアルのFMTLIB参照)を 使ってux, uyの値を文字化したあとで Axis::Lin.xplbl/yplbl を呼んでいる. (ラベルの属性については, Axis::Lin.plbl/yplbl を参照のこと. ) Axis::Lin.xplbl/yplbl に渡す文字型配列を内部で用意しているため ux, uyの長さは40以下でなければならない.
  3. サブルーチン CHVAL に渡すフォーマットは, Axis::Lin.xpnum についてはパラメタ cxfmt で設定/参照することができる. Axis::Lin.ypnum についてはパラメタ cyfmt で設定/参照することができる. cxfmt, cyfmt は長さ16以下の文字型変数. たとえば '(F6.1)' のように指定する. 初期値は CHVAL に固有のオプションである 'B' (有効数字3ケタで文字化し, 小数点以下に続く後方の0は取り除く; さらに小数点が最下位ならそれも取り除く). CHVAL は自動的に文字を左詰めする. つまり実数値 1.2 を文字化するために '(F4.1)' としても '(F8.1)' としても CHVAL が返す値はどちらも '1.2' である.
  4. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xptmk(cside, islct, ux, x=nil, y=nil, temp=nil)

目盛を描く.

引数

備考

  1. このメソッドは UXPTMK を呼んでいる。
  2. 目盛の長さはパラメタ rsizet(i) が決める.
  3. 目盛を描く線のラインインデクスはパラメタ indext(1) が決める.
  4. 目盛を内側に向かって打つか, 外側に向かって打つかは パラメタ inner が決める. inner が正のとき内側に向かって目盛を打つ; 負のとき外側に向かって目盛を打つ (初期値は+1).
  5. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.yptmk(cside, islct, ux, x=nil, y=nil, temp=nil)

目盛を描く.

引数

備考

  1. このメソッドは UYPTMK を呼んでいる。
  2. 目盛の長さはパラメタ rsizet(i) が決める.
  3. 目盛を描く線のラインインデクスはパラメタ indext(1) が決める.
  4. 目盛を内側に向かって打つか, 外側に向かって打つかは パラメタ inner が決める. inner が正のとき内側に向かって目盛を打つ; 負のとき外側に向かって目盛を打つ (初期値は+1).
  5. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。

Axis::Lin.xpttl(cside, islct, cttl, px, temp=nil)

タイトルを描く.

引数

備考

  1. このメソッドは UXPTTL を呼んでいる。
  2. タイトルの文字の大きさはパラメタ rsizec(i) が決める.
  3. タイトルの文字列の回転角はパラメタ irotc(zs) が決める.
  4. タイトルの文字を描く線分のラインインデクスはパラメタ indexl(i)が決める.
  5. パラメタ lbound が true で タイトルがウインドウの幅をこえるとタイトルを描かない; false ならウインドウの幅をこえても描く (初期値は false). また, パラメタ lbound が true で タイトルがウインドウの幅をこえて描けないとき パラメタ lbmsg が true なら その旨メッセージを出力する; false なら出力しない (初期値は true).

Axis::Lin.ypttl(cside, islct, cttl, py, temp=nil)

タイトルを描く.

引数

備考

  1. このメソッドは UYPTTL を呼んでいる。
  2. タイトルの文字の大きさはパラメタ rsizec(i) が決める.
  3. タイトルの文字列の回転角はパラメタ irotc(zs) が決める.
  4. タイトルの文字を描く線分のラインインデクスはパラメタ indexl(i)が決める.
  5. パラメタ lbound が true で タイトルがウインドウの幅をこえるとタイトルを描かない; false ならウインドウの幅をこえても描く (初期値は false). また, パラメタ lbound が true で タイトルがウインドウの幅をこえて描けないとき パラメタ lbmsg が true なら その旨メッセージを出力する; false なら出力しない (初期値は true).

Axis::Lin.xmttl(cside, cttl, px, temp=nil)

大きめのタイトルを描く.

引数

備考

  1. このメソッドは UXMTTL を呼んでいる。
  2. このメソッドは UXPTTL (ISLCT=2)を使って タイトルを描いている.

Axis::Lin.ymttl(cside, cttl, py, temp=nil)

大きめのタイトルを描く.

引数

備考

  1. このメソッドは UYMTTL を呼んでいる。
  2. このメソッドは UYPTTL (ISLCT=2)を使って タイトルを描いている.

Axis::Lin.xsttl(cside, cttl, px, temp=nil)

小さめのタイトルを描く.

引数

備考

  1. このメソッドは UXSTTL を呼んでいる。
  2. このメソッドは UXPTTL (ISLCT=1)を使って タイトルを描いている.

Axis::Lin.ysttl(cside, cttl, py, temp=nil)

小さめのタイトルを描く.

引数

備考

  1. このメソッドは UYSTTL を呼んでいる。
  2. このメソッドは UYPTTL (ISLCT=1)を使って タイトルを描いている.

AdvancedDCL::Axis::Log

本モジュールについて

Axis::Logモジュールは対数軸を描くためのモジュールである。

パラメタ

ixchr (Fixnum) <ULPACK>

X軸に関する2・10nという形のラベルで, '・'の位置に使う文字番号.DCL文字番号(DCL 「GRPH1」のマニュアル参照)で指定する.初期値は195 (・).

iychr (Fixnum) <ULPACK>

Y軸に関する2・10nという形のラベルで, '・'の位置に使う文字番号.DCL文字番号(DCL 「GRPH1」のマニュアル参照)で指定する.初期値は195 (・).

ixtype (Fixnum) <ULPACK>

X軸に関するラベルのフォーマットを指定する.1から4の整数値が指定できる(初期値は1).それぞれの意味は次項で説明.

iytype (Fixnum) <ULPACK>

Y軸に関するラベルのフォーマットを指定する.1から4の整数値が指定できる(初期値は1).

  1. : 全てのラベルに指数部を付ける.

    例  1・103  2・103  5・103  1・104

    ただし, Text が管理するパラメタ lcntl が false のときには・10n のかわりにEnと表現する.

  2. : 10n 以外のラベルには指数部を付けない.

    例  103  2  5  104 
  3. : DCL(rbdcl)サブルーチン CHVAL(DCL 「MISC1」のマニュアルFMTLIB 参照)を使って全てのラベルを文字化する.

    例  1000  2000  5000  10000
  4. : 10nのラベルのみ CHVAL を使う.そのほかは2を指定したときと同じ.

    例   1000  2  5  10000
xlabelfmt, ylabelfmt (String) <ULPACK::ULXSFM>

パラメタ ixtype / iytypeが 3 または 4 のときに使用する フォーマットを設定する.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Axis::Log.ixtype でパラメタ ixtype の参照が、Axis::Log.ixtype= でパラメタ ixtype の変更ができる。

Axis::Log.set(key, val)

パラメタの設定を行う。

引数

使用例

Axis.set("ixtype", 4)      # X軸に関するラベルのフォーマットを 4 に設定

Axis::Log.get(key)

パラメタを参照する。

引数

使用例

Axis.get("ixtype")      #X軸に関するラベルのフォーマットを参照する。

Axis::Log.xlabelset(value)

ラベルを描く位置を指定する.

引数

備考

  1. このメソッドは ULSXBL を呼んでいる。
  2. Axis::Log.xdraw / ydraw において nlabel として 4 を指定する場合は, あらかじめ本ルーチンによって ラベルを描く位置を指定しなければならない.
  3. value の長さは 9 以下でなければならない.
  4. ラベルを描く位置は, X/Y軸についてメソッド

    Axis::Log.xlabelget / ylabelget

    で参照することができる.

Axis::Log.ylabelset(value)

ラベルを描く位置を指定する.

引数

  1. このメソッドは ULSYBL を呼んでいる。
  2. Axis::Log.xdraw / ydraw において nlabel として 4 を指定する場合は, あらかじめ本ルーチンによって ラベルを描く位置を指定しなければならない.
  3. value の長さは 9 以下でなければならない.
  4. ラベルを描く位置は, X/Y軸についてメソッド

    Axis::Log.xlabelget / ylabelget

    で参照することができる.

Axis::Log.xlabelget

ラベルを描く位置を得る。

引数

なし

備考

  1. このメソッドは ULQXBL を呼んでいる。

Axis::Log.ylabelget

ラベルを描く位置を得る。

引数

なし

備考

  1. このメソッドは ULQYBL を呼んでいる。

Axis::Log.xdraw(cside, nlabel, nticks, x=nil, y=nil, temp=nil)

対数座標軸を描く.

引数

備考

  1. このメソッドは ULXLOG を呼んでいる。
  2. Axis::Log.xdraw / ydraw はそれぞれ Axis::Lin.xpaxs / ypaxs (islct=2)で軸を描いている; Axis::Lin.xptmk / yptmk (islct=1)で 10n 以外の小さめの目盛を描いている; Axis::Lin.xptmk / yptmk (islct=2)で 10n の大きめの目盛を描いている; Axis::Lin.xplbl / yplbl (islct=1)でラベルを描いている. したがって,これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. くわしくは Axis::Lin 参照のこと.
  3. このメソッドは小さめの目盛を打つ場所を内部で生成して Axis::Lin.xptmk / yptmk を呼んでいる. この作業用配列の制約から目盛を打つ最大数は200以下でなければならない.
  4. このルーチンはラベルを描く場所を内部で生成して Axis::Lin.xplbl / yplbl を呼んでいる. この作業用配列の制約から描くラベルの最大数は 50 以下でなければならない.
  5. nlabel として 4 を指定する場合は, あらかじめ Axis::Log.xlabelset / ylabelset によってラベルを描く位置が指定されてなければならない.
  6. ラベルのフォーマットは, パラメタ ixtype, iytype (それぞれX軸, Y軸のフォーマット)で指定する (初期値はそれぞれ1: すべてのラベルに指数部をつける).

Axis::Log.ydraw(cside, nlabel, nticks, x=nil, y=nil, temp=nil)

対数座標軸を描く.

引数

備考

  1. このメソッドは ULYLOG を呼んでいる。
  2. Axis::Log.xdraw / ydraw はそれぞれ Axis::Lin.xpaxs / ypaxs (islct=2)で軸を描いている; Axis::Lin.xptmk / yptmk (islct=1)で 10n 以外の小さめの目盛を描いている; Axis::Lin.xptmk / yptmk (islct=2)で 10n の大きめの目盛を描いている; Axis::Lin.xplbl / yplbl (islct=1)でラベルを描いている. したがって,これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. くわしくは Axis::Lin 参照のこと.
  3. このメソッドは小さめの目盛を打つ場所を内部で生成して Axis::Lin.xptmk / yptmk を呼んでいる. この作業用配列の制約から目盛を打つ最大数は200以下でなければならない.
  4. このルーチンはラベルを描く場所を内部で生成して Axis::Lin.xplbl / yplbl を呼んでいる. この作業用配列の制約から描くラベルの最大数は 50 以下でなければならない.
  5. nlabel として 4 を指定する場合は, あらかじめ Axis::Log.xlabelset / ylabelset によってラベルを描く位置が指定されてなければならない.
  6. ラベルのフォーマットは, パラメタ ixtype, iytype (それぞれX軸, Y軸のフォーマット)で指定する (初期値はそれぞれ1: すべてのラベルに指数部をつける).

AdvancedDCL::Dateaxis

本モジュールについて

Dateaxisモジュールは日付軸を描くためのモジュールである。

パラメタ

nday (Fixnum) <UCPACK>

Dateaxis.xady, Dateaxis.yady を使うとき,何日ごとに目盛と日付を描くかを指定する. nday が不定なら0, 1, 2, 5, 10, 15の中から適当な値が選ばれる(0以下のときは軸を描くだけで目盛と日付は描かない);陽に与えられていればその値を使う(初期値は不定). これは DCL の関数 'NUCDAY'が決める.

nchar (Fixnum) <UCPACK>

Dateaxis.xamn, Dateaxis.yamn を使うとき,月名を何文字描くかを指定する. ncharが不定なら0, 1, 2, 3, 9の中から適当な値が選ばれる( 0 のときは軸を描くだけで目盛と月名は描かない);陽に与えられていればその値を使う(初期値は不定).これは DCL の関数 'NUCCHR' が決める.

lower (true or false) <UCPACK>

Dateaxis.xady, Dateaxis.yady で描く月名の2文字目以下を小文字にするかどうかを指定する. true なら小文字にする; false なら大文字のままにする(初期値は false).

iundef (Fixnum) <UCPACK>

値が不定であることを示す内部変数(初期値は -999).

また、これらのパラメタはメソッドとして用いることができる。すなわち、Dateaxis.nday でパラメタ nday の参照が、 Dateaxis.nday= でパラメタ nday の変更ができる。

Dateaxis.set(key, val)

パラメタの設定を行う。

引数

使用例

Dateaxis.set("nday", 15)      # nday を 15 に設定

Dateaxis.get(key)

パラメタを参照する。

引数

使用例

Axis.get("nday")      # nday を参照する。

Dateaxis.xdraw(cside, jd0, nd, x=nil, y=nil, temp=nil)

日・月・年に関する座標軸を描く.

引数

備考

  1. このメソッドは UCXACL を呼んでいる。
  2. Dateaxis.xdraw は Dateaxis.xady, Dateaxis.xamn, Dateaxis.xayr (以下参照)を続けて呼んでいる.

Dateaxis.ydraw(cside, jd0, nd, x=nil, y=nil, temp=nil)

日・月・年に関する座標軸を描く.

引数

備考

  1. このメソッドは UCYACL を呼んでいる。
  2. Dateaxis.ydraw は Dateaxis.yady, Dateaxis.yamn, Dateaxis.yayr (以下参照)を続けて呼んでいる.

Dateaxis.xady(cside, jd0, nd, x=nil, y=nil, temp=nil)

日に関する座標軸を描く.

引数

備考

  1. このメソッドは UCXADY を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 何日ごとに目盛と日付を描くかは, DCL の関数 NUCDAY を通してパラメタ nday が決める. nday が不定なら0, 1, 2, 5, 10, 15の中から適当な値が選ばれる( 0 以下のときは軸を描くだけで目盛と日付は描かない); 陽に与えられていればその値を使う(初期値は不定).
  4. 目盛と日付を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と日付は最大100個である.
  5. Dateaxis.xady, Dateaxis.yady はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 1)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 1)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は false とする.

Dateaxis.yady(cside, jd0, nd, x=nil, y=nil, temp=nil)

日に関する座標軸を描く.

引数

備考

  1. このメソッドは UCYADY を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 何日ごとに目盛と日付を描くかは, DCL の関数 NUCDAY を通してパラメタ nday が決める. nday が不定なら0, 1, 2, 5, 10, 15の中から適当な値が選ばれる( 0 以下のときは軸を描くだけで目盛と日付は描かない); 陽に与えられていればその値を使う(初期値は不定).
  4. 目盛と日付を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と日付は最大100個である.
  5. Dateaxis.xady, Dateaxis.yady はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 1)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 1)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は false とする.

Dateaxis.xamn(cside, jd0, nd, x=nil, y=nil, temp=nil)

月に関する座標軸を描く.

引数

備考

  1. このメソッドは UCXAMN を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 月名を何文字描くかは, DCL の関数 NUCCHR を通してパラメタ nchar が決める. nchar が不定なら0, 1, 2, 3, 9 の中から適当な値が選ばれる( 0 以下のときは軸を描くだけで目盛と月名は描かない); 陽に与えられていればその値を使う(初期値は不定). nchar の値が負のときはその絶対値の長さの月名を書き, さらに2文字目以降を小文字にする.
  4. 目盛と月名を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と月名は最大 50 個である.
  5. Dateaxis.xamn, Dateaxis.yamn はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 2)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 2)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は true とする.

Dateaxis.yamn(cside, jd0, nd, x=nil, y=nil, temp=nil)

月に関する座標軸を描く.

引数

備考

  1. このメソッドは UCYAMN を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 月名を何文字描くかは, DCL の関数 NUCCHR を通してパラメタ nchar が決める. nchar が不定なら0, 1, 2, 3, 9 の中から適当な値が選ばれる( 0 以下のときは軸を描くだけで目盛と月名は描かない); 陽に与えられていればその値を使う(初期値は不定). nchar の値が負のときはその絶対値の長さの月名を書き, さらに2文字目以降を小文字にする.
  4. 目盛と月名を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と月名は最大 50 個である.
  5. Dateaxis.xamn, Dateaxis.yamn はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 2)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 2)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は true とする.

Dateaxis.xayr(cside, jd0, nd, x=nil, y=nil, temp=nil)

年に関する座標軸を描く.

引数

備考

  1. このメソッドは UCXAYR を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 目盛と月名を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と月名は最大 50 個である.
  4. Dateaxis.xamn, Dateaxis.yamn はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 2)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 2)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は true とする.

Dateaxis.yayr(cside, jd0, nd, x=nil, y=nil, temp=nil)

年に関する座標軸を描く.

引数

備考

  1. このメソッドは UCYAYR を呼んでいる。
  2. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定し、軸を描く。
  3. 目盛と月名を描くための情報を保持するために 内部で配列を用意している. その配列の大きさに関する制限から, 描きうる目盛と月名は最大 50 個である.
  4. Dateaxis.xamn, Dateaxis.yamn はそれぞれ Axis::Lin.xpaxs, Axis::Lin.ypaxs (islct = 2)で軸を描いている; Axis::Lin.xptmk, Axis::Lin.yptmk (islct = 2)で目盛を描いている; Axis::Lin.xplbl, Axis::Lin.yplbl (islct = 2)で日のラベルを描いている. したがって, これら座標軸の構成要素の属性は, Axis::Lin のパラメタによって参照/変更することができる. ただし, icent(zs) は 0 とする; irotl(zs) は irotc(zs)を参照して用いる; lbtwn は true とする.

AdvancedDCL::Plot

本モジュールについて

Plotモジュールはプロット図を描くためのモジュールである。

パラメタ

nbits(Float)<SGPACK>

ポリラインプリミティブの描く折れ線のラインタイプをビットパターンで設定するとき,下位何ビットを使うかを指定する(初期値は16).

bitlen(Float)<SGPACK>

ポリラインプリミティブの描く折れ線のラインタイプをビットパターンで設定するとき,1ビットがVC上でどれだけの長さに相当するかを指定する(初期値は0.003).

move(Fixnum)<SGPACK>

SZPACKの下位ルーチンが破線等のパターンで線を引くとき,pen-up moveの後のパターンのサイクルについて指定する(初期値は1).

lchar(true or false)<SGPACK>

ポリラインプリミティブで折れ線を描くとき,ラベルつき折れ線とするかどうかを指定する.TRUEのときラベルつき折れ線とする;FALSEのときラベルなし折れ線とする(初期値はFALSE).以下はこのラベルつき線分に関するパラメーターである.

lrot(true or false)<SGPACK>

ラベルとして付ける文字列を一定の回転角で描くか,あるいは線分に沿って描くかを指定する.TRUEのとき一定の回転角で描く;FALSEのとき線分に沿って描く(初期値はFALSE).

irot(Fixnum)<SGPACK>

ラベルとして付ける文字列を一定の回転角で描くとき('LROT'が.TRUE.のとき)の回転角を指定する(単位は度;初期値は0).

fwc(Float)<SGPACK>

文字列を書くための空白域の幅を全文字幅を単位としてどれだけとるかを指定する係数(初期値は1.25)

cwl(Float)<SGPACK>

1サイクルあたり,線分部分の長さを文字高を単位として何文字分とるかを指定する係数(初期値は30.0)

ffct(Float)<SGPACK>

ラベルつき折れ線を描くにあたって,線分部分を1単位としてどれだけ進んだところから描き始めるかを指定する(初期値は0.5).

indexc(Fixnum)<SGPACK>

ラベルとして各文字列のラインインデクスを指定する(初期値は0).値が0のとき,線分部分を書くために現在設定されているラインインデクスと同じ値をとる.

lbuff(true or false)<SGPACK>

折れ線の終りが文字列を描くべき空白部分であるときそこを線分で結ぶためのバッファリングをすうかどうかを指定する.TRUEのときバッファリングをする;FALSEのときバッファリングしない(初期値はTRUE)

nbuff(Fixnum)<SGPACK>

バッファリングをするときその長さを指定する(初期値は20).

rbuff(Float)<SGPACK>

バッファリングをした内容を書き出した後,ラベルつき折れ線のサイクルの位置を指定する.0と1の間の値を指定すること.(初期値は0.99)

lcurv(true or false)<SGPACK>

折れ線のなす角が大きなところではラベルを書かないことを指定する.正確には,文字を書くべきスペースが次のパラメーター'rcurv'の係数以下のときラベルを書かない.TRUEのときラベルを書かない;FALSEのときラベルを書く(初期値はTRUE)

rcurv(Float)<SGPACK>

lcurvがTRUEで,ラベルを書くべきスペースがこの係数以下のときラベルを書かない.(初期値は1.0)

lineindex(Fixnum)<U[UVH]PACK::UUSLNI>

折れ線の ラインインデクスを設定する(初期値は1).lineindexは1以上でなければならない. ただしlineindexが0のとき, メッセージは出力されるがなにもしない.

linetype(Fixnum)<U[UVH]PACK::UUSLNT>

折れ線のラインタイプを設定する(初期値は1). linetypeが1のとき実線, 2のとき破線, 3のとき点線, 4のとき1点鎖線となる. その他の0以外の整数は下位Nビット (Nはパラメタnbitsで決まる値. 初期値は16)のビットパターンを用いて線種が設定される. たとえばN=16で itype = Z'0000F0F0' (16進定数)のとき, '4bits ON 4bits OFF 4bits ON 4bits OFF' のような破線が設定される. 1ビット当たりの長さはbitlenが決める.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Plot.nbitsでパラメタnbitsの参照が、Plot.nbits=でパラメタnbitsの変更ができる。

Plot.set(key, val)

パラメタの設定を行う。

引数

使用例

Axis.set("lineindex", 3)      #ラインインデクスを3にする。

Plot.get(key)

パラメタを参照する。

引数

使用例

Axis.get("lineindex")      #ラインインデクスを参照する。

Plot.draw(x, y, temp=nil)

U座標系で折れ線を描く。

引数

備考

  1. このメソッドはUULINを呼んでいる。
  2. x または y に rundef を指定すると, Fig.variablerange= で指定した定義域を n-1 等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.

Plot.vdraw(x, y, temp=nil)

V座標系で折れ線を描く.

引数

備考

  1. このメソッドはSGPLVを呼んでいる。
  2. x,yの長さは2以上でなければならない.

Plot.rdraw(x, y, temp=nil)

R座標系で折れ線を描く.

引数

備考

  1. このメソッドはSGPLRを呼んでいる。
  2. x,yの長さは2以上でなければならない.

Plot.setlabel(label)

ラベルつき折れ線を描くとき, その文字列を指定する.

引数

備考

  1. このメソッドはSGSPLCを呼んでいる。
  2. 設定する文字列の長さは32文字以下でなければならない.

Plot.nplc

設定されている文字列の最後の文字の文字番号を1つ増やす.

引数 なし

備考

  1. このメソッドはSGNPLCを呼んでいる。
  2. このルーチンを呼ぶと, 設定されている文字列の最後の文字の文字番号が1つふやされる. つまり文字列として'X=1'が指定されていたとすると, nplc を呼ぶことによって設定されている文字列が 'X=2'となる.

AdvancedDCL::Arrow

本モジュールについて

Arrowモジュールは単一の矢じり付き線分を描くためのモジュールである。

パラメタ

lprop(true or false)<SGPACK>

矢じり部分の線分を本体部分の線分の長さに比例させて描くかどうかを指定する.TRUEなら比例させて描く; FALSEならパラメタconstで指定してある一定値で,地図投影のときはパラメタconstmで指定してある一定値で描く(初期値はTRUE).

luarw(true or false)<SGPACK>

地図投影のとき, 矢じり部分の線分も地図にへばりついたように描くかどうかを指定する.TRUEなら地図上で描く; FALSEならVCで描く(初期値はTRUE).

afact(Float)<SGPACK>

lpropが TRUE(比例させて描く)のときに用いる比例定数(初期値は0.33).

const(Float)<SGPACK>

lpropがFALSE(一定値で描く)のときに用いる一定値(単位はVC;初期値は0.01).

constm(Float)<SGPACK>

lpropがFALSE(一定値で描く)でかつ地図投影のときに用いる一定値(単位は度;初期値は5.0).

angle(Float)<SGPACK>

矢じり部分の線分と本体部分の線分のなす角(単位は度;初期値は20.0).

latone(true or false)<SGPACK>

矢じり部分を定義する三角形の領域を塗りつぶすかどうかを指定する.TRUEなら塗りつぶす;FALSEなら塗りつぶさない(初期値はFALSE).

iatone(true or false)<SGPACK>

矢じり部分を定義する三角形の領域を塗りつぶす)のときのトーンパターン(初期値は999).3桁以下のとき, カラーインデクスは軸の部分について指定されているものを用いる.

arrowtype(Fixnum)<SGPACK::SGSLAT>

線分の ラインタイプを設定する. arrowtypeは0以外でなければならない. ただしarrowtypeが0のとき, メッセージは出力されるがなにもしない.

arrowindex(Fixnum)<SGPACK::SGSLAI>

線分の ラインインデクスを設定する. lineindexは1以上でなければならない. ただしlineindexが0のとき, メッセージは出力されるがなにもしない.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Arrow.lpropでパラメタlpropの参照が、Arrow.lprop=でパラメタlpropの変更ができる。

Arrow.set(key, val)

パラメタの設定を行う。

引数

使用例

Axis.set("arrowindex", 3)      # アローインデクスを3に設定

Arrow.get(key)

パラメタを参照する。

引数

使用例

Axis.get("arrowindex")      # アローインデクスを参照する

Arrow.draw(x1, y1, x2, y2, temp=nil)

U座標系で矢じり付き線分を描く。

引数

備考

  1. このメソッドはSGLAUを呼んでいる。

Arrow.vdraw(x1, y1, x2, y2, temp=nil)

V座標系で矢じり付き線分を描く。

引数

備考

  1. このメソッドはSGLAVを呼んでいる。

Arrow.rdraw(x1, y1, x2, y2, temp=nil)

R座標系で矢じり付き線分を描く。

引数

備考

  1. このメソッドはSGLARを呼んでいる。

AdvancedDCL::Bar

本モジュールについて

Barモジュールは棒グラフを描くためのモジュールである。

パラメタ

frtype(Fixnum)<UUPACK::UUSFRT>

枠のラインタイプを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

frindex(Fixnum)<UUPACK::UUSFRI>

枠のラインインデクスを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

barwidth(Float)<UUPACK::UUSBRS>

棒グラフの横巾を指定する.

lineindex(Fixnum)<UUPACK::UUSLNI>

折れ線のラインインデクスを指定する.

linetype(Fixnum)<UUPACK::UUSLNT>

折れ線のラインタイプを指定する。

variablerange(Array[2, Float])<UUPACK::UUSIDV>

独立変数の定義域を指定する.

uref(Float)<UUPACK>

Bar.(x,y)frm,Bar.(x,y)tone,Bar.(x,y)lineの引数X1, Y1 または X2, Y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.

itpat(Array[2, Fixnum])<UUPACK::UUSARP>

内部領域を塗るトーンパターンを指定する. ここで設定する番号は Diff.tone,Bar.tone,Box.tone で使われる.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Bar.frtypeでパラメタfrtypeの参照が、Bar.frtype=でパラメタfrtypeの変更ができる。

Bar.set(key, val)

パラメタの設定を行う。

引数

使用例

Bar.set("frindex", 3)      # 枠のラインインデクスを3に設定する

Bar.get(key)

パラメタを参照する。

引数

使用例

Bar.get("frindex")      #枠のラインインデクスを参照する

Bar.yfrm(x1, x2, y, temp=nil)

Yを独立変数とする棒グラフの枠を描く.

引数

備考

  1. このメソッドはUHBRFを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1または x2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 枠の属性はパラメタfrtype, frindexで指定する. 棒の幅はbarwidthで指定する.

Bar.xfrm(x, y1, y2, temp=nil)

Xを独立変数とする棒グラフの枠を描く.

引数

備考

  1. このメソッドはUVBRFを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. y1または y2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 枠の属性はパラメタfrtype, frindexで指定する. 棒の幅はbarwidthで指定する.

Bar.ytone(x1, x2, y, temp=nil)

棒グラフの内部領域を塗る.

引数

備考

  1. このメソッドはUVBRAを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1または x2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. トーンパターンはパラメタでtpat指定する. 棒の幅はbarwidthで指定する.

Bar.xtone(x, y1, y2, temp=nil)

棒グラフの内部領域を塗る.

引数

備考

  1. このメソッドはUHBRAを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. y1または y2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. トーンパターンはパラメタでtpat指定する. 棒の幅はbarwidthで指定する.

Bar.yline(xd, y, temp=nil)

棒グラフを線で結ぶ.

引数

備考

  1. このメソッドはUVBRLを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. xdに RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 線の属性はパラメタlinetype, lineindexで指定する. 棒の幅は barwidth で指定する.

Bar.xline(x, yd, temp=nil)

棒グラフを線で結ぶ.

引数

備考

  1. このメソッドはUHBRLを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. ydに RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 線の属性はパラメタlinetype, lineindexで指定する. 棒の幅はbarwidthで指定する.

AdvancedDCL::Box

本モジュールについて

Boxモジュールは箱グラフを描くためのモジュールである。

パラメタ

frtype(Fixnum)<UUPACK::UUSFRT>

枠のラインタイプを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

frindex(Fixnum)<UUPACK::UUSFRI>

枠のラインインデクスを指定する. 設定する属性は Bar.frame,Box.frame で使われる.

lineindex(Fixnum)<UUPACK::UUSLNI>

折れ線のラインインデクスを指定する.

linetype(Fixnum)<UUPACK::UUSLNT>

折れ線のラインタイプを指定する。

variablerange(Array[2, Float])<UUPACK::UUSIDV>

独立変数の定義域を指定する.

uref(Float)<UUPACK>

Box.(x,y)frm, Box.(x,y)tone, Box.(x,y)lineの引数x1, y1 または x2, y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.

itpat(Array[2, Fixnum])<UUPACK::UUSARP>

内部領域を塗るトーンパターンを指定する. ここで設定する番号は Diff.tone,Bar.tone,Box.tone で使われる.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Box.frtypeでパラメタfrtypeの参照が、Box.frtype=でパラメタfrtypeの変更ができる。

Box.set(key, val)

パラメタの設定を行う。

引数

使用例

Box.set("frindex", 3)      # 枠のラインインデクスを3に設定する

Box.get(key)

パラメタを参照する。

引数

使用例

Bar.gox("frindex")      #枠のラインインデクスを参照する

Box.yfrm(x1, x2, y, temp=nil)

Yを独立変数とする箱グラフの枠を描く.

引数

備考

  1. このメソッドはUHBXFを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1または x2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 枠の属性はパラメタfrtype, frindexで指定する.

Box.xfrm(x, y1, y2, temp=nil)

Xを独立変数とする箱グラフの枠を描く.

引数

備考

  1. このメソッドはUVBXFを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. y1または y2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 枠の属性はパラメタfrtype, frindexで指定する.

Box.ytone(x1, x2, y, temp=nil)

箱グラフの内部領域を塗る.

引数

備考

  1. このメソッドはUVBXAを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1または x2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. トーンパターンはパラメタでtpat指定する.

Box.xtone(x, y1, y2, temp=nil)

箱グラフの内部領域を塗る.

引数

備考

  1. このメソッドはUHBXAを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. y1または y2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. トーンパターンはパラメタでtpat指定する.

Box.yline(xd, y, temp=nil)

箱グラフを線で結ぶ.

引数

備考

  1. このメソッドはUVBXLを呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. xdに RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 線の属性はパラメタlinetype, lineindexで指定する.

Box.xline(x, yd, temp=nil)

箱グラフを線で結ぶ.

引数

備考

  1. このメソッドはUHBXLを呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. ydに RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. 線の属性はパラメタlinetype, lineindexで指定する.

AdvancedDCL::Diff

本モジュールについて

Diffモジュールは差分を描くためのモジュールである。

パラメタ

variablerange(Array[2, Float])<UUPACK::UUSIDV>

独立変数の定義域を指定する.

uref(Float)<UUPACK>

Diff.(x,y)tone の引数 X1, Y1 または X2, Y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.

itpat(Array[2, Fixnum])<UUPACK::UUSARP>

内部領域を塗るトーンパターンを指定する. ここで設定する番号は Diff.tone,Bar.tone,Box.tone で使われる.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Diff.tpatでパラメタ tpat の参照が、Box.tpat= でパラメタ tpat の変更ができる。

Diff.set(key, val)

パラメタの設定を行う。

引数

使用例

Diff.set("tpat", [299, 499])      # トーンパターンを[299, 499]に設定する

Diff.get(key)

パラメタを参照する。

引数

使用例

Diff.gox("tpat")      #トーンパターンを参照する

Diff.ytone(x1, x2, y, temp=nil)

2本の折れ線の間をトーンパターンで塗る.

引数

備考

  1. このメソッドは UVDIF を呼んでいる。
  2. x または y に RUNDEF を指定すると, パラメタ variablerange で指定した定義域を n-1 等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1, y1 または x2, y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. Diff.ytone , Diff.xtone が塗るトーンパターンはパラメタ tpat で指定する.

Diff.xtone(x, y1, y2, temp=nil)

2本の折れ線の間をトーンパターンで塗る.

引数

備考

  1. このメソッドは UHDIF を呼んでいる。
  2. x または y に RUNDEF を指定すると, パラメタ variablerange で指定した定義域を n-1 等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1, y1 または x2, y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. Diff.ytone , Diff.xtone が塗るトーンパターンはパラメタ tpat で指定する.

AdvancedDCL::Errbar

本モジュールについて

Errbarモジュールはエラーバーを描くためのモジュールである。

パラメタ

errbartype (Fixnum) <UUPACK::UUSEBT>

エラーバーのラインタイプ.

errbarindex (Fixnum) <UUPACK::UUSEBI>

エラーバーのラインインデクス.

errbarsize (Float) <UUPACK::UUSEBS>

エラーバーの横幅.

variablerange(Array[2, Float])<UUPACK::UUSIDV>

独立変数の定義域を指定する.

uref(Float)<UUPACK>

Box.(x,y)frm, Box.(x,y)tone, Box.(x,y)lineの引数x1, y1 または x2, y2 に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Errbar.errbartype でパラメタ errbartype の参照が、Errbar.errbartype= でパラメタ errbartype の変更ができる。

Errbar.set(key, val)

パラメタの設定を行う。

引数

使用例

Errbar.set("errbarindex", 3)      # エラーバーのラインインデクスを3に設定する

Errbar.get(key)

パラメタを参照する。

引数

使用例

Errbar.gox("errbarindex")      # エラーバーのラインインデクスを参照する

Errbar.ydraw(x1, x2, y, temp=nil)

Yを独立変数とするエラーバー描く.

引数

備考

  1. このメソッドは UVERB を呼んでいる。
  2. yに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(x1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. x1または x2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. エラーバーの属性はパラメタ errbartype, errbarindex, errbarsize で指定する.

Errbar.xdraw(x, y1, y2, temp=nil)

Xを独立変数とするエラーバー描く.

引数

備考

  1. このメソッドは UHERB を呼んでいる。
  2. xに RUNDEF を指定すると, パラメタvariablerangeで指定した定義域を(y1.length)等分した点が 指定されたものとみなす. 定義域が指定されていなければ, ウインドウ全体を定義域とする.
  3. y1または y2に RUNDEF を指定すると, パラメタ uref の値が指定されたものとみなす. uref の初期値は 0 である.
  4. エラーバーの属性はパラメタ errbartype, errbarindex, errbarsize で指定する.

AdvancedDCL::Mark

本モジュールについて

Markモジュールはマーカーを描くためのモジュールである。

パラメタ

pmfact (Float) <SGPACK>

ポリマーカープリミティブが描くマーカーの大きさを調整する係数(初期値は2.0).ポリマーカープリミティブはテキストプリミティブを用いてマーカーを描く.このとき, 描くマーカーは標準的な文字高に比べて小さい(DCL manual フォントテーブル8.1.2,8.1.3節参照).この内部変数はマーカーが標準的な文字高を持つようにするため使われる拡大係数である.

npmskip (Fixnum) <SGPACK>

ポリマーカープリミティブでマーカーを描くとき,何個に1個の割合で描くかを指定する(初期値は1;すべてマーカーを描く. Mark.draw がバッファリングする最大個数50以下でなければならない).

marktype (Fixnum) <SGPACK::SGSPMT>

Mark.draw, Mark.vdraw, Mark.rdraw で描くマーカータイプを設定する. marktype が 1 のとき'.', 2 のとき'+', 3 のとき'*', 4 のとき'o'のように, DCL文字番号(DCL manual 2.12節および 8.1.2, 8.1.3節の フォントテーブル参照)に対応する文字を描く. たとえば marktype = 152のとき, 'α'を描く.

markindex (Fixnum) <SGPACK::SGSPMI>

Mark.draw, Mark.vdraw, Mark.rdraw で描くマーカーの ラインインデクスを設定する. markindex は1以上でなければならない. ただし markindex が0のとき, メッセージは出力されるがなにもしない. markindex の妥当性はこのルーチンでチェックされず, Mark.draw, Mark.vdraw, Mark.rdraw を呼んだときにチェックされる.

marksize (Float) <AGPACK::SGSPMS>

Mark.draw, Mark.vdraw, Mark.rdraw で描くマーカーの大きさを設定する. V-座標系における単位で指定する(初期値は0.01). marksize は0より大きくなければならない. ただし marksize が0のとき, メッセージは出力されるがなにもしない. marksize の妥当性はこのルーチンでチェックされず, Mark.draw, Mark.vdraw, Mark.rdraw を呼んだときにチェックされる.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Mark.nbitsでパラメタnbitsの参照が、Mark.nbits=でパラメタnbitsの変更ができる。

Mark.set(key, val)

パラメタの設定を行う。

引数

使用例

Mark.set("markindex", 3)      #マーカーインデクスを3にする。

Mark.get(key)

パラメタを参照する。

引数

使用例

Mark.get("markindex")      #マーカーインデクスを参照する。

Mark.draw(x, y, temp=nil)

マーカー列を描く.

引数

備考

  1. このメソッドは UUMRK を呼んでいる。
  2. x, yの長さは 1 以上でなければならない.
  3. 描くマーカーの属性はパラメタ marktype, markindex, marksize で設定する.

Mark.vdraw(x, y, temp=nil)

V座標系でマーカー列を描く.

引数

備考

  1. このメソッドは SGPMV を呼んでいる。
  2. x, yの長さは 1 以上でなければならない.
  3. 描くマーカーの属性はパラメタ marktype, markindex, marksize で設定する.

Mark.rdraw(x, y, temp=nil)

R座標系でマーカー列を描く.

引数

備考

  1. このメソッドは SGPMR を呼んでいる。
  2. x, yの長さは 1 以上でなければならない.
  3. 描くマーカーの属性はパラメタ marktype, markindex, marksize で設定する.

AdvancedDCL::Text

本モジュールについて

Textモジュールは図中にテキストを貼るためのモジュールである。

パラメタ

ifont (Fixnum) <SGPACK>

フォント番号(初期値は1).

lcntl (true or false) <SGPACK>

テキストプリミティブで文字を描くとき,制御文字('ISUP','ISUB','IRST'参照)を有効とするかどうかを指定する. true のときは有効とする; falseのときは有効としない(初期値は false).

small (Float) <SGPACK>

上付および下付添え字の標準文字高に対する比率(初期値は0.7).

shift (Float) <SGPACK>

上付および下付添え字の中心を標準文字の中心からどれだけはなすかを標準文字高に対する比率で指定する(初期値は0.3).

isup (Fixnum) <SGPACK>

上付添え字のモードの始まりをしめす制御文字の文字番号.初期値は124;これは'|'に対応する.

isub (Fixnum) <SGPACK>

下付添え字のモードの始まりをしめす制御文字の文字番号.初期値は95;これは'_'に対応する.

irst (Fixnum) <SGPACK>

上付および下付添え字のモードの終わりをしめす制御文字の文字番号.初期値は34;これは'"'に対応する.

charsize (Float) <SGPACK::SGSTXS>

Text.draw, Text.vdraw, Text.rdraw で描く文字の高さをV座標系における単位で指定する(初期値は0.05).
* charsize は 0 より大きくなければならない. ただし charsize が 0 のとき, メッセージは出力されるがなにもしない. 
* charsize の妥当性はこのルーチンでチェックされず, Text.draw, Text.vdraw, Text.rdraw を呼んだときにチェックされる. 
charrot (Fixnum) <SGPACK::SGSTXR>

文字列の傾きを度の単位で与える (初期値は0).

charcent (Fixnum) <SGPACK::SGSTXC>

Text.draw, Text.vdraw, Text.rdraw で描く文字列の センタリングオプションを設定する.-1, 0 +1のいずれかを指定する.( -1 : 左あわせ, 0 : 中央あわせ, +1 : 右あわせ)

charindex (Fixnum) <SGPACK::SGSTXI>

Text.draw, Text.vdraw, Text.rdraw で描く文字の ラインインデクスを設定する(1.7節参照;初期値は1).

また、これらのパラメタはメソッドとして用いることができる。すなわち、Text.charindex でパラメタ charindex の参照が、Text.charindex=でパラメタcharindexの変更ができる。

Text.set(key, val)

パラメタの設定を行う。

引数

使用例

Text.set("charindex", 3)      #文字のラインインデクスを3にする。

Text.get(key)

パラメタを参照する。

引数

使用例

Text.get("charindex")      #文字のラインインデクスを参照する。

Text.draw(ux, uy, chars, x=nil, y=nil, temp=nil)

文字列を描く.

引数

備考

  1. このメソッドは SGTXU を呼んでいる。
  2. 描く文字列の属性はパラメタ charsize, charrot, charcent, charindex で設定する.
  3. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定する。

Text.vdraw(ux, uy, chars, x=nil, y=nil, temp=nil)

V座標系で文字列を描く.

引数

備考

  1. このメソッドは SGTXV を呼んでいる。
  2. 描く文字列の属性はパラメタ charsize, charrot, charcent, charindex で設定する.
  3. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定する。

Text.rdraw(ux, uy, chars, x=nil, y=nil, temp=nil)

R座標系で文字列を描く.

引数

備考

  1. このメソッドは SGTXR を呼んでいる。
  2. 描く文字列の属性はパラメタ charsize, charrot, charcent, charindex で設定する.
  3. ウィンドウを指定していないとき、引数としてx,yを指定するとx,yを基にウィンドウを設定する。

Text.spchar(number)

DCL文字番号に対応する文字を返す.

引数

備考

  1. このメソッドは CSGI を呼んでいる。

AdvancedDCL::Contour

本モジュールについて

Contourモジュールは等高線図を描くためのモジュールである。

パラメタ

indexmj (Fixnum) <UDPACK>

major line のラインインデクス(初期値は3).

indexmn (Fixnum) <UDPACK>

minor line のラインインデクス(初期値は1).

label (true or false) <UDPACK>

major line にラベルをつけるかどうかの指定をする. true ならつける; false ならつけない(初期値は true ).

ldash (true or false) <UDPACK>

負のコンターラインを異なるラインタイプで描くかどうかを指定する. true のとき負のコンターラインをパラメタ idash の参照するラインタイプで描く; false のときすべてのコンターラインをパラメタ isolid の参照するラインタイプで描く(初期値は true ).

idash (Fixnum) <UDPACK>

ldash が true のとき,負のコンターレベルに使うラインタイプ(初期値は3:破線).

isolid (Fixnum) <UDPACK>

ldash が true のとき0以上のコンターレベルに,または ldash が false のときすべてのコンターレベルに使うラインタイプ(初期値は1:実線).

icycle (Fixnum) <UDPACK>

minor line を major line の間に何本引くかを指定する. すなわち icycle で参照する値に1本の割合で major line を引き, 残りは minor line を引く(初期値は2).

nlev (Fixnum) <UDPACK>

コンターレベルを自動的に生成するとき,この内部変数を参照して約 nlev 本のコンターレベルを生成する(初期値は12).

labelsize (Float) <UDPACK>

コンターラベルの文字高(単位はV座標系;初期値は不定).この内部変数が不定のとき Axis の管理するパラメタ rsizel1を参照する( Axis 参照).

lmsg (true or false) <UDPACK>

グラフの下部マージンにメッセージを書くかどうかを指定する. true なら書く; false なら書かない(初期値は true ).

titlesize (Float) <UDPACK>

グラフの下部マージンに書くメッセージの文字高(単位はV座標系;初期値は不定).この内部変数が不定のとき Axis の管理するパラメタ rsizel1 を参照する(3.7節参照).

xttl (Float) <UDPACK>

グラフの下部マージンに書くメッセージの位置を決める内部変数. -1 から +1 までの実数値をとりうる. -1 のとき左よせ, 0 のときセンタリング, +1 のとき右よせする(初期値は 0 ).

iundef (Fixnum) <UDPACK>

値が不定であることを示す内部変数(初期値は -999 ).

labelfmt (String) <UDPACK::UDSFMT>

コンターラベルのフォーマットを指定する(長さは16文字以下). たとえばコンターラベルをすべて整数型にしたいとき

Contour.labelfmt = '(I8)' 

とすればよい (文字は左詰めされるのでラベルが8文字以下なら, たとえば '(I12)' でも効果は同じ). 初期値はDCL(rbdcl)のサブルーチンCHVAL (「MISC1」のマニュアルFMTLIB参照)が解釈するオプション'D' (有効数字3ケタでほぼ4-5文字の表現)である.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Contour.xttl でパラメタ xttl の参照が、Contour.xttl= でパラメタ xttl の変更ができる。

Contour.set(key, val)

パラメタの設定を行う。

引数

使用例

Contour.set("xttl", -1)      # メッセージを左寄せにする。

Contour.get(key)

パラメタを参照する。

引数

使用例

Contour.get("xttl")      # メッセージの位置を参照する。

Contour.gcla(max, min, dx)

Contour.draw で使うコンターレベル値を 最小値・最大値および きざみ値またはおよそのレベル数で設定する.

引数

備考

  1. このメソッドはUDGCLAを呼んでいる.
  2. xmin≠xmaxでなければならない.
  3. コンターレベルは dx が決めるきざみ幅の整数倍になるように設定される.
  4. コンターにつけるラベルは, DCL(rbdcl)サブルーチンUDLABLが生成する. このとき使用するフォーマットは, パラメタ labelfmt により参照/変更できる.
  5. コンターには major line と minor line の2種類がある. major line とはラベル付きのコンターで, minor line とはラベルなしのコンターである. (ただし, パラメタ label を false にすれば major line もラベルなしとすることができる. 初期値は true ) major line のラインインデクスはパラメタ indexmj が決める(初期値は3). major line に付けるラベルの文字高はパラメタ rsizel が決める(単位はV座標系の値;初期値は不定. このとき rsizel は Axis の管理する内部変数 rsizel1 を参照する). minor line のラインインデクスは内部変数 indexmn が決める(初期値は1).
  6. パラメタ ldash が true のとき, コンターレベルが負のコンターラインは内部変数 idash を参照してそのラインタイプで描かれる ( ldash の初期値は true, idash の初期値は3:破線). それ以外のコンターラインはパラメタ isolid を参照してそのラインタイプで描かれる ( isolid の初期値は1:実線).
  7. minor line を major line の間に何本引くかは内部変数 icycle (初期値は2)が決める. すなわち icycle で参照する値に1本の割合で major line を引き, 残りは minor line を引く. major line のコンターレベルは dx で決まるきざみ幅の icycle 倍になるように設定される.

Contour.gclb(z, dx)

Contour.draw で使うコンターレベル値を格子点値を与える配列ときざみ値またはおよそのレベル数で設定する.

引数

備考

  1. このメソッドはUDGCLBを呼んでいる.
  2. このルーチンは z の格子点値の最小値・最大値をチェックして, 内部で Contour.gcla を呼んでいる.

Contour.sclv(zlev, index, itype, clv, hl)

コンターラインの属性をすべて指定して1本のコンターレベルを設定する.

引数

備考

  1. このメソッドはUDSCLVを呼んでいる.
  2. Contour.gcla, Contour.gclb は内部でこのメソッドを呼んでいる. 補助線を入れたいときなど Contour.gcla, Contour.gclb を呼んだ後でこのメソッドを呼べば, 引くべきコンターレベルを1本追加できる.
  3. ラベル(clv)の長さは 8 以下でなければならない.
  4. 現在設定されているコンターレベルの属性は

    Contour.levelget

によって参照できる.

Contour.dclv(zlev)

あるコンターレベルを削除する.

引数

備考

  1. このメソッドはUDDCLVを呼んでいる.
  2. Contour.gcla, Contour.gclb によって既に設定されているコンターレベルから特定のコンターレベルを削除したいときこのルーチンを呼べばよい.

Contour.iclv

Contour.gcla, Contour.gclb, Contour.sclv で設定したコンターレベルを無効にする.

引数 なし

備考

  1. このメソッドはUDICLVを呼んでいる.
  2. Contour.gcla, Contour.gclb, Contour.sclv によって既に設定されているコンターレベルを無効にして Contour.draw を呼びたいとき, このルーチンを呼ぶ必要がある.

Contour.intervalget(nlev)

DGCLA, UDGCLB, UDSCLVで設定したコンターレベルの 間隔を求める.

引数

備考

  1. このメソッドはRUDLEVを呼んでいる.
  2. 内部的にはUDQCLV によって第 nlev 番目と nlev+1 番目の コンターレベルの値を調べ, その差(第 nlev+1 番目から nlev 番目を引いた値)を返す.UDQCLVが参照するコンターレベルの値は必ずしも昇順にならんでいるとは限らないことに注意すること.
  3. コンターレベルは 2 本以上設定されていなければならない. また nlev は 1 以上で, 設定されているコンターレベルの総数 より小さくなければならない.これらの条件が満たされないとき RUDVAL は警告メッセージを出して, 0 を返す.

Contour.levelget

現在設定されているコンターレベルの属性を求める。

引数 なし

備考

  1. 返り値は、[[zlev, index, itype, clv, hl], [zlev, ... ], ...] という形のArrayオブジェクトである。

Contour.draw(data, x=nil, y=nil, temp=nil)

2次元等高線図を描く

引数

備考

  1. このメソッドはUDCNTZを呼んでいる。
  2. 格子点の間隔が不等間隔の場合、引数としてx, yを与えてやると自動的に格子点を設定する。
  3. ウィンドウの設定を行っていない場合において、x, yを与えればそれをもとにウィンドウ設定を行い、x, yを与えなければ配列 data の各次元の長さをもとにウィンドウを設定する。
  4. コンターを引くレベルの値がContour.gcla, Contour.gclb または Contour.sclv によって設定されていない場合, 次のサブルーチンを内部で呼んで 約 nlev 本のコンターレベルを設定する.

    Contour.gclb(z, -(nlev)) 

    nlev は Contour の管理するパラメタ nlev が参照する値である(初期値は12).

  5. コンターを引くアルゴリズムの制約から, 格子点の値はどのコンターレベルの値とも等しくてはならない. もしもそのような格子点値があると内部で微小量が修正される (その際メッセージが出力される).
  6. Fig の管理するパラメタ lmiss が true なら欠損値処理をおこなう. (その際, 参照する欠損値は Fig の管理する パラメタ rmiss である. ) false なら欠損値処理をおこなわない.
  7. コンタリングの前にすべての格子点値のチェックをおこなう. 次の2つの場合コンタリングはおこなわずその旨メッセージが出力される. さらにパラメタ lmsg が true のときグラフの下部マージンにもメッセージを書く. false のときメッセージを書かない (初期値は true ).2つの場合とは:

    • すべての格子点が欠損値のとき(missing field).
    • すべての格子点が同一な値のとき(constant field).
  8. パラメタ lmsg が true で引くべきコンターレベルの数が2本以上あるとき, 実数型の関数RUDLEV(1) を呼んで 第1コンターレベルの値(CZL1)と第2コンターレベルの値(CZL2)の差 (CZL2-CZL1)をグラフの下部マージンに書き出す. これらのメッセージは, 地図投影変換以外が設定されているとき, Axis が管理する情報を使って書く. したがって, このような場合は, まず座標軸を描いた後で Contour.draw を呼ぶべきである. いっぽう, 地図投影変換が設定されているとき, 下部マージンの真中に書く.

AdvancedDCL::Tone

本モジュールについて

Toneモジュールはカラートーン(モノクロも)を貼るためのモジュールである。

パラメタ

icolor1 (Fixnum) <UEPACK>

ltone が true のとき用いる色番号の下限値(初期値は15).

icolor2 (Fixnum) <UEPACK>

ltone が true のとき用いる色番号の上限値(初期値は94).

ipat (Fixnum) <UEPACK>

ltone が false のとき, 内部変数 rlev 以下の領域をぬるトーンパターン(初期値は1201:右上がりの斜線).

nlev (Fixnum) <UEPACK>

トーンレベルを自動的に生成するとき,この内部変数を参照して約 nlev 本のコンターレベルを生成する(初期値は12).

icycle (Fixnum) <UEPACK>

minor line を major line の間に何本引くかを指定する. すなわち icycle で参照する値に1本の割合で major line を引き, 残りは minor line を引く(初期値は2).

ltone (true or false) <UEPACK>

ぬりわけるトーンレベルをユーザーが指定しなかったとき, Tone.gtlb を使ってトーンレベルとトーンパターンを生成するかどうかを指定する. true なら Tone.gtlb をつかう; false なら rlev (下記)以下をぬるような設定をする(初期値は false).

rlev (Float) <UEPACK>

ltone が false のとき, ぬりわける領域の境界値(初期値は0.0).ここで指定した値以下の領域をぬる.

lsoftf (true or false) <SGPACK>

トーンプリミティブで塗りつぶしをおこなうとき soft fill をおこなうか hard fill をおこなうかを指定する. true のときは soft fill をおこなう; false のときは hard fill をおこなう(初期値は false). ただし, hard fill を指定してもその能力がない場合は soft fillとなる.

lcl2tn (true or false) <SGPACK>

色を用いたべた塗りによる塗りわけをおこなうとき, 色番号をドットなどのパターン番号として読みかえるかどうかを指定する. true のときは読みかえる; false のときは読みかえない(初期値は false).ただし, 色を用いた塗りわけができないような装置では, false と設定されていてもパターン番号による読みかえをおこなおうとする.

tnblen (Float) <SGPACK>

トーンプリミティブでドットパターンによる soft fill をおこなう場合,フィルエリアサブプリミティブの下位ルーチンを用い点線の集合として表現する.このとき点線のラインタイプはビットパターンで設定されるが,その1ビットが RC 上でどれだけの長さに相当するかを指定する(初期値は0.001).

irmode (Fixnum) <SGPACK>

トーンプリミティブで指定された閉領域がクリッピング境界にかかる時に, 境界線の向きを指定するパラメタ. 0 のとき反時計回り; 1 のとき時計回り. DCL manual 1.7.5節参照のこと.(初期値は0).

tonepat (Fixnum) <UEPACK, SGPACK>

ltone が true のとき用いるパターン番号(初期値は999, べた塗り).

また、これらのパラメタはメソッドとして用いることができる。すなわち、Tone.nlev でパラメタ nlev の参照が、Tone.nlev= でパラメタ nlev の変更ができる。

Tone.set(key, val)

パラメタの設定を行う。

引数

使用例

Tone.set("nlev", 10)      # nlevの値を 10 に設定する

Tone.get(key)

パラメタを参照する。

引数

使用例

Tone.gox("nlev")      # nlev の値を参照する

Tone.gtla(max, min, dx)

Tone.draw で使うトーンレベル値を 最小値・最大値および きざみ値またはおよそのレベル数で設定する.

引数

備考

  1. このメソッドは UEGTLA を呼んでいる.
  2. このルーチンは Contour.gcla (DCL manual 8.2.3節参照) と同じアルゴリズムにもとづいてレベル値を生成している. アルゴリズムを同一にするため、Contour で用いられるパラメタ, nlev, icycle と同じものが, Tone でも用意されている. Contour でこれらの値を変えたときは, Tone でも変更してやらなければならないが、Common のnlev, icycleを変えることで両方変更することが可能である。

Tone.gtlb(z, dx)

Tone.draw で使うコンターレベル値を格子点値を与える配列ときざみ値またはおよそのレベル数で設定する.

引数

備考

  1. このメソッドは UEGTLB を呼んでいる.
  2. このルーチンは z の格子点値の最小値・最大値をチェックして, 内部で Tone.gtla を呼んでいる.

Tone.stlv(zlev, index, itype, clv, hl)

コンターラインの属性をすべて指定して1本のコンターレベルを設定する.

引数

備考

  1. このメソッドは UDSTLV を呼んでいる.
  2. Tone.gtla, Tone.gtlb は内部でこのメソッドを呼んでいる. 補助線を入れたいときなど Tone.gtla, Tone.gtlb を呼んだ後でこのメソッドを呼べば, 引くべきコンターレベルを1本追加できる.
  3. ラベル(clv)の長さは 8 以下でなければならない.
  4. 現在設定されているコンターレベルの属性は

    Tone.levelget

によって参照できる.

Tone.stln(tlevn, ipatn)

ぬりわけるレベルとパターンを配列で複数レベル指定する.

引数

備考

  1. このメソッドは UESTLN を呼んでいる。
  2. Tone.stlv との関連で説明すると, tlev1 として tlevn[i], tlev2 として tlevn[i+1], ipat として ipatn[i] (i=1,...) を 指定したのと同等である. したがって, tlevn[i]<tlev[i+1] でなければならない. くわしくは DCL manual9.2.5節参照.

Tone.itlv

Tone.stlv または Tone.stln で設定したトーンレベルを無効にする.

引数

なし

備考

  1. このメソッドは UEITLV を呼んでいる。
  2. Tone.stln または Tone.stln によって既に設定されているトーンレベルを無効にして Tone.draw を呼びたいとき, このルーチンを呼ぶ必要がある.

Tone.levelget

現在設定されているコンターレベルの属性を求める。

引数 なし

備考

  1. 返り値は、[[tlev1, tlev2, ipat, iton], [tlev1, ... ], ...] という形のArrayオブジェクトである。

Tone.draw(data, x=nil, y=nil, temp=nil)

トーンによる2次元等値線図のぬりわけをおこなう.

引数

備考

  1. このメソッドは UETONE を呼んでいる。
  2. 格子点の間隔が不等間隔の場合、引数としてx, yを与えてやると自動的に格子点を設定する。
  3. ウィンドウの設定を行っていない場合において、x, yを与えればそれをもとにウィンドウ設定を行い、x, yを与えなければ配列 data の各次元の長さをもとにウィンドウを設定する。
  4. ぬりわけをおこなうレベルの値が Tone.gtla, Tone.gtlb, Tone.stlv または Tone.stln によって設定されていない場合, 次のようにぬりわけるレベル値とトーンパターンを設定する. Tone の管理するパラメタ ltone が true のとき,

    Tone.gtlb(data,-(nlev)) 

    を呼んで約 nlev 本のトーンレベルを設定する。nlev はパラメタ nlev が参照する値である (初期値は12); パラメタ ltone が false のとき, パラメタ rlev が参照する値以下の領域をパラメタ ipat が参照する値のトーンパターンでぬりわける (rlev, ipat の初期値はそれぞれ 0.0, 1201:右上がりの斜線). なお ltone の初期値は false である.

  5. パラメタ lmiss が true なら欠損値処理をおこなう. つまり欠損値のまわりの格子点はぬりわけない. (その際, 参照する欠損値は Fig の管理する パラメタ rmiss である. ) false なら欠損値処理をおこなわない. くわしくは DCL manual 「MATH1」のマニュアル参照.
  6. ぬりわけをおこなう前にすべての格子点値のチェックをおこなう. 次の2つの場合ぬりわけはおこなわずその旨メッセージが出力される. 2つの場合とは:

    • すべての格子点が欠損値のとき(missing field).
    • すべての格子点が同一な値のとき(constant field).

Tone.imdraw(data, x=nil, y=nil, temp=nil)

イメージデータ描画機能を使って, 2次元等値線図のぬりわけをおこなう.

引数 引数

備考

  1. このメソッドは UETONF を呼んでいる。
  2. 格子点の間隔が不等間隔の場合、引数としてx, yを与えてやると自動的に格子点を設定する。
  3. ウィンドウの設定を行っていない場合において、x, yを与えればそれをもとにウィンドウ設定を行い、x, yを与えなければ配列 data の各次元の長さをもとにウィンドウを設定する。
  4. Tone.draw とほぼ互換性があるが, 指定できるトーンパターンはべた塗りだけである.
  5. イメージ描画機能のないデバイスでは使用できない.
  6. ピクセル毎に周囲4点のデータから線形内挿して値 (data) を 求め色を決める. したがって, 色の境界は一般に曲線となる.

Tone.fill(upx, upy, temp=nil)

多角形閉領域をぬりつぶす.

引数

備考

  1. このメソッドは SGTNU を呼んでいる。
  2. upx, upy の長さは 3 以上でなければならない.
  3. 領域をぬりつぶすトーンパターン番号は tonepat で設定する.

Tone.vfill(vpx, vpy, temp=nil)

V座標系で多角形閉領域をぬりつぶす.

引数

備考

  1. このメソッドは SGTNV を呼んでいる。
  2. vpx, vpy の長さは 3 以上でなければならない.
  3. 領域をぬりつぶすトーンパターン番号は tonepat で設定する.

Tone.rfill(rpx, rpy, temp=nil)

R座標系で多角形閉領域をぬりつぶす.

引数

備考

  1. このメソッドは SGTNR を呼んでいる。
  2. rpx, rpy の長さは 3 以上でなければならない.
  3. 領域をぬりつぶすトーンパターン番号は tonepat で設定する.

AdvancedDCL::Vector

本モジュールについて

Vectorモジュールはベクトル図を描くためのモジュールである。

パラメタ

lineindex (Fixnum) <UGPACK>

ベクトルを描く線分のラインインデクス.および lmissp , lsmall が true のときに描くマーカーのラインインデクス(初期値は3 ).

icent (Fixnum) <UGPACK>

ベクトルの始点を格子点に対してどこにとるか指定する. +1 ならベクトルの終点が格子点と一致するように描く; 0 ならベクトルの中点が格子点と一致するように描く; -1 ならベクトルの始点が格子点と一致するように描く(初期値は0).

itype1 (Fixnum) <UGPACK>

欠損値処理をおこなうとき, その格子点に描くマーカーのマーカータイプ(初期値は5).

itype2 (Fixnum) <UGPACK>

内部変数'LSMALL'がのとき,その格子点に描くマーカーのマーカータイプ(初期値は1).

iuindx (Fixnum) <UGPACK>

ユニットベクトルにつけるタイトルのラインインデクス(初期値は3).

iunttl (Fixnum) <UGPACK>

設定されている, ユニットベクトルにつけるタイトルの数.ユーザーは値を設定してはいけない.

iutxro (Fixnum) <UGPACK>

X方向のユニットベクトルにつけるタイトルの回転角(単位は度;初期値は0).

iutyro (Fixnum) <UGPACK>

Y方向のユニットベクトルにつけるタイトルの回転角(単位は度;初期値は90).タイトルの長さが1のときに限って iutyro は90以外の値をとることが許される.

leqrat (true or false) <UGPACK>

内部的にスケーリングファクターを決めるとき(lnrmal が true のとき) X方向とY方向のスケーリングファクターを同じにするかどうかを指定する. true なら同じにする(初期値は true).

lmissp (true or false) <UGPACK>

欠損値ベクトルのとき,その格子点にマーカーを描くかどうか(欠損値処理をおこなうかどうか)を指定する. true なら描く; false なら描かない(初期値は false).

lmsg (true or false) <UGPACK>

グラフの下部マージンにスケーリングファクターなどのタイトルを書くかどうかを指定する. true なら書く; false なら書かない(初期値は true).

lnrmal (true or false) <UGPACK>

内部的にスケーリングファクターを決めるかどうかを指定する. true のとき内部的に決める; false のときパラメタ xfact1 , yfact1 を参照する(初期値は true).

lsmall (true or false) <UGPACK>

ベクトルの大きさが内部変数 rsmall で決まる値以下のとき欠損値処理と同じように,その格子点にマーカーを描くかどうか指定する. true なら描く; falseなら描かない(初期値は false).

lumsg (true or false) <UGPACK>

ユニットベクトルを描くときグラフの下部マージンにユニットベクトルの単位を書くかどうかを指定する. true なら書く; false なら書かない(初期値は true).

lunit (true or false) <UGPACK>

ユニットベクトルを描くかどうかを指定する. true なら描く; false なら描かない(初期値は false).

rsizem (Float) <UGPACK>

lmissp, lsmall が true のときに描くマーカーのマーカーサイズ(初期値は0.01).

rsizet (Float) <UGPACK>

グラフの下部マージンに書くタイトルの文字高(単位はV座標系;初期値は不定).このパラメタが不定のとき Axis の管理するパラメタ rsizel1 を参照する(DCL manual 3.7節参照).

rsizeut (Float) <UGPACK>

ユニットベクトルにつけるタイトルの文字高(単位はV座標系;初期値は不定).このパラメタが不定のとき Axis の管理するパラメタ rsizel1 を参照する(DCL manual 3.7節参照).

rsmall (Float) <UGPACK>

パラメタ lsmall が参照するベクトルの大きさのしきい値(初期値は0.001).

rundef (Float) <UGPACK>

値が不定であることを示す内部変数(初期値は-999.0).

uxunit (Float) <UGPACK>

X方向のユニットベクトルの長さ(単位は次元量;初期値は不定).

uyunit (Float) <UGPACK>

Y方向のユニットベクトルの長さ(単位は次元量;初期値は不定).

vxuloc (Float) <UGPACK>

ユニットベクトルの始点のX座標(単位はV座標系;初期値は不定).

vxunit (Float) <UGPACK>

X方向のユニットベクトルの長さ(単位はV座標系;初期値は0.05).

vxuoff (Float) <UGPACK>

vxuloc, vyuloc が陽に指定されていないとき,ユニットベクトルをビューポートの右下隅からX方向にどれだけ離すかを与えるオフセット値(単位はV座標系;初期値は0.02).

vyuloc (Float) <UGPACK>

ユニットベクトルの始点のY座標(単位はV座標系;初期値は不定).

vyunit (Float) <UGPACK>

Y方向のユニットベクトルの長さ(単位はV座標系;初期値は0.05).

vyuoff (Float) <UGPACK>

vxuloc, vyuloc が陽に指定されていないとき,ユニットベクトルをビューポートの右下隅からY方向にどれだけ離すかを与えるオフセット値(単位はV座標系;初期値は0.0).

xfact1 (Float) <UGPACK>

lnrmal が false のときに参照するX方向のスケーリングファクター(初期値は1.0).

xfact2 (Float) <UGPACK>

実際に用いられるX方向のスケーリングファクター(初期値は不定).ユーザーが指定しても意味がない.

xttl (Float) <UGPACK>

グラフの下部マージンに書くタイトルの位置を決める内部変数. -1 から +1 までの実数値をとりうる. -1 のとき左よせ, 0 のときセンタリング, +1 のとき右よせする(初期値は0).

yfact1 (Float) <UGPACK>

lnrmal が false のときに参照するY方向のスケーリングファクター(初期値は1.0).

yfact2 (Float) <UGPACK>

実際に用いられるY方向のスケーリングファクター(初期値は不定).ユーザーが指定しても意味がない.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Vector.xttl でパラメタ xttl の参照が、Vector.xttl= でパラメタ xttl の変更ができる。

Vector.set(key, val)

パラメタの設定を行う。

引数

使用例

Vector.set("xttl", -1)      # メッセージを左寄せにする。

Vector.get(key)

パラメタを参照する。

引数

使用例

Vector.get("xttl")      # メッセージの位置を参照する。

Vector.uvtitle(cside, cttl)

ユニットベクトルにつけるタイトルを設定する.

引数

備考

  1. このメソッドは UGSUT を呼んでいる。
  2. 設定できるタイトルの数は最大10個, またタイトルの長さは最大32文字である. (3) タイトル文字のラインインデクスは, パラメタ iuindx が決める(初期値は3). また, タイトルの回転角はXおよびY方向についてそれぞれパラメタ iutxro, iutyroが決める (初期値はそれぞれ0, 90:単位は度).

Vector.draw(u, v, x=nil, y=nil, temp=nil)

2次元ベクトル場を描く.

引数

備考

  1. このメソッドはUDCNTZを呼んでいる。
  2. 格子点の間隔が不等間隔の場合、引数としてx, yを与えてやると自動的に格子点を設定する。
  3. ウィンドウの設定を行っていない場合において、x, yを与えればそれをもとにウィンドウ設定を行い、x, yを与えなければ配列 data の各次元の長さをもとにウィンドウを設定する
  4. ベクトルの各成分の単位はV座標系における単位とする. ただし普通は, V座標系の単位に変換した配列U, V を与える必要はなく, スケーリングファクターを与えてやればよい. このスケーリングファクターは, パラメタ lnrmal が true (初期値)なら内部的に決定される; false ならパラメタ xfact1, tfact1 (初期値はそれぞれ1.0)を参照する. したがって, スケーリングファクターを陽に指定したければ, lnrmal を false として xfact1, yfact1 を設定してやればよい. さらに, lnrmal が true のとき, パラメタ leqrat が true ならばXとYの スケーリングファクターを同じにする (初期値は true).
  5. ベクトルは DCL の UFPACK (DCL manual 第14章参照)のなかの UFLNZV によって描かれる. したがってベクトルの形は UFPGET/UFPSET の管理する内部変数によって決まる. ただし, ベクトルを描く線分のラインインデクスはパラメタ lineindex が決める(初期値は3). また, パラメタ icent によってベクトルの始点を格子点に対してどこにとるか指定できる. icentが +1 ならベクトルの終点が格子点と一致するように描く; 0 ならベクトルの中点が格子点と一致するように描く; -1 ならベクトルの始点が格子点と一致するように描く (初期値は0).
  6. Fig の管理するパラメタ lmiss が true なら欠損値処理をおこなう; (その際, 参照する欠損値は Fig の管理するパラメタ rmiss である) false なら欠損値処理をおこなわない. ここでいう欠損値処理とは, ベクトルのXまたはY成分のうち 少なくとも一方が欠損値 (以下では, このようなベクトルを欠損値ベクトルと呼ぶ) のときにおこなわれる処理のことである. 具体的には, パラメタ lmissp が true のときその格子点にマークを描く (描くマークのマーカータイプ, マーカーインデクス,マーカーサイズはパラメタ itype1, lineindex, rsizem を参照する. 初期値はそれぞれ5, 3, 0.01. ); false なら, なにも描かない (初期値は false). また, パラメタ lsmall が true なら パラメタ rsmall が決める値以下のベクトル長の ベクトルについても上と同様な処理をおこなう. ただし描くマーカーのマーカータイプは, パラメタ itype2 を参照する. (lsmall, rsmall, itype2の初期値はそれぞれ false, 0.001, 1. )
  7. 作画をおこなう前にすべてのベクトル値のチェックをおこなう. 次の2つの場合作画はおこなわずその旨メッセージが出力される. さらにパラメタ lmsg が true のときグラフの下部マージンにもメッセージを書く; false のときメッセージを書かない (初期値は true). 2つの場合とは:

    • すべてのベクトルが欠損値ベクトルのとき(missing field).
    • すべてのベクトルがゼロベクトルのとき(zero field).
  8. パラメタ lunit が true ならユニットベクトルを描く; false なら描かない(初期値は false). ユニットベクトルは, パラメタ vxuloc, vyuloc (V座標系におけるx,y座標値:初期値は不定)を陽に指定しなければ ビューポートの右下隅からパラメタ vxuoff, vyuoff で決まる量だけはなれた位置に描かれる (vxuoff, vyuoff の初期値は0.02, 0). またユニットベクトルの長さは, パラメタ vxunit, vyunit で決まる(単位はV座標系;初期値は0.05, 0.05). ただしパラメタ uxunit, uyunit が陽に設定されていればそれらの値を用いる(初期値は不定). uxunit, uyunit は vxunit, vyunit と違ってユニットベクトルが示す次元量の単位で指定する. さらに lunit が true のとき, パラメタlumsg が true ならユニットベクトルの大きさを図の下部マージンに書く(初期値は true); lunit が false のとき, パラメタ lmsg が true ならスケーリングファクターを図の下部マージンに書く(初期値は true). これらのメッセージは DCL の UXPTTL (DCL manual 3.8.5節参照)を使って書く. したがって, まず座標軸を描いた後で Vector.draw を呼ぶべきである.

AdvancedDCL::Map

本モジュールについて

Mapモジュールは地図投影を行うためのモジュールである。

パラメタ

indexmj (Fixnum) <UMPACK>

Map.grid が描く緯度線・経度線の major line のラインインデクス(初期値は3).

indexmn (Fixnum) <UMPACK>

Map.grid が描く度線・経度線の minor line のラインインデクス(初期値は1).

lgridmj (true or false) <UMPACK>

Map.grid が緯度線・経度線を描くとき major line を描くかどうかを指定する. true なら描く; false なら描かない(初期値は true).

lgridmn (true or false) <UMPACK>

Map.grid が緯度線・経度線を描くとき minor line を描くかどうかを指定する. true なら描く; false なら描かない(初期値は true).

itypemj (Fixnum) <UMPACK>

Map.grid が描く緯度線・経度線の major line のラインタイプ(初期値は 1).

itypemn (Fixnum) <UMPACK>

Map.grid が描く緯度線・経度線の minor line のラインタイプ(初期値は3).

dgridmj (Float) <UMPACK>

Map.grid が描く緯度線・経度線の major line の間隔(単位は度; 初期値は30.0).

dgridmn (Float) <UMPACK>

Map.grid が描く緯度線・経度線の minor line の間隔(単位は度; 初期値は10.0).

dgrplmj (Float) <UMPACK>

Map.grid が描く経度線の major line を極からどれだけはいったところから描くかを指定する.(単位は度; 初期値は0.0).

dgrplmn (Float) <UMPACK>

Map.grid が描く経度線の minor line を極からどれだけはいったところから描くかを指定する.(単位は度; 初期値は0.0).

indexbnd (Fixnum) <UMPACK>

Map.limb が描く地図境界線のラインインデクス(初期値は3).

maxbnd (Fixnum) <UMPACK>

Map.limb が描く地図境界線を描くときいくつぐらいの線分に分割して描くかを設定する(初期値は300).

indexout (Fixnum) <UMPACK>

海岸線などの地図情報を描く線分のラインインデクス(初期値は1).

itypeout (Fixnum) <UMPACK>

海岸線などの地図情報を描く線分のラインタイプ(初期値は1).

lglobe (true or false) <UMPACK>

全球を描くようにするかどうかを指定する. true なら全球を描く; false なら全球を描かない(初期値は false).

また、これらのパラメタはメソッドとして用いることができる。すなわち、Map.indexmj でパラメタ indexmj の参照が、Map.indexmj= でパラメタ indexmj の変更ができる。

Map.set(key, val)

パラメタの設定を行う。

引数

使用例

Map.set("indexmj", 5)      # majorラインのインデクスを5にする。

Map.get(key)

パラメタを参照する。

引数

使用例

Map.get("indexmj")      # majorラインのインデクスを参照する。

Map.draw(temp=nil)

地図の境界線 (縁) と緯度線, 経度線を描く.

引数

備考

  1. このメソッドは UMPGLB を呼んでいる。
  2. これは次の Map.grid と Map.limb を連続して呼んでいる.

Map.grid(temp=nil)

緯度線・経度線を描く.

引数

備考

  1. このメソッドは UMPGRD を呼んでいる。
  2. 描く緯度線・経度線の種類としては major line と minor line の 2種類がある.
  3. major line を描くかどうかはパラメタ lgridmj が決める(初期値は true). 描くその間隔は dgridmj が決める. また描く線分の属性は indexmj, itypemj が決める (初期値はそれぞれ3, 1). さらに子午線に関しては, パラメタ dgrplmj によって 極から何度はいったところから描くかが指定できる(初期値は0).
  4. minor line を描くかどうかは パラメタ lgridmn が決める(初期値は true. 描くその間隔は dgridmn が決める. また描く線分の属性は indexmn, itypemn が決める (初期値はそれぞれ1, 3). さらに子午線に関しては, パラメタ dgrplmn によって 極から何度はいったところから描くかが指定できる(初期値は0).
  5. dgridmj と dgridmn は Frame.new を 呼んだタイミングで「不定」に設定される. これらの値が不定のとき, 地図の大きさから適当な値が設定される.

Map.limb(temp=nil)

地図の境界線 (縁) を描く.

引数

備考

  1. このメソッドは UMPLIM を呼んでいる。
  2. 地図境界を描く線分のラインインデクスはパラメタ indexbnd が決める(初期値は3). ラインタイプはつねに1 (実線)である.

Map.open(file, temp=nil)

各種地図情報を描く.

引数

備考

  1. このメソッドは UMPMAP を呼んでいる。
  2. file で指定したファイル名が直接用いられるとは限らない. 実際に読み込まれるファイル名は DCL(rbdcl)の UMQFNM が決める. UMQFNM の標準的な仕様では, まずカレントディレクトリを探す. 次に GLCGET/GLCSET が管理する内部変数 'DUPATH'のさすディレクトリを探す. 最後に内部変数'DSPATH'のさすディレクトリを探す.
  3. 現在のところ次のような地図情報ファイルが用意されている.

    • 'coast_world' : 世界の海岸線.
    • 'border_world' : 世界の国境.
    • 'plate_world' : 世界のプレート境界.
    • 'state_usa' : アメリカの州境.
    • 'coast_japan' : 日本の海岸線.
    • 'pref_japan' : 日本の県境.

AdvancedDCL::Solid

本モジュールについて

Solidモジュールは3D図を描くためのモジュールである。

パラメタ

lineindex (Fixnum) <SCPACK::SCSPLI>

Solid.plot, Solid.vplot で描く折れ線の ラインインデクスを設定する.

npmskip (Fixnum) <SGPACK>

ポリマーカープリミティブでマーカーを描くとき,何個に1個の割合で描くかを指定する(初期値は1;すべてマーカーを描く. Solid.mark がバッファリングする最大個数50以下でなければならない).

marktype (Fixnum) <SCPACK::SCSPMT>

Solid.mark, Solid.vmark で描くマーカータイプを設定する. marktype が 1 のとき'.', 2 のとき'+', 3 のとき'*', 4 のとき'o'のように, DCL文字番号(DCL manual 2.12節および 8.1.2, 8.1.3節の フォントテーブル参照)に対応する文字を描く. たとえば marktype = 152のとき, 'α'を描く.

markindex (Fixnum) <SCPACK::SCSPMI>

Solid.mark, Solid.vmark で描くマーカーの ラインインデクスを設定する. markindex は1以上でなければならない. ただし markindex が0のとき, メッセージは出力されるがなにもしない. markindex の妥当性はこのルーチンでチェックされず, Solid.mark, Solid.vmark を呼んだときにチェックされる.

marksize (Float) <SCPACK::SCSPMS>

Solid.mark, Solid.vmark で描くマーカーの大きさを設定する. V-座標系における単位で指定する(初期値は0.01). marksize は0より大きくなければならない. ただし marksize が0のとき, メッセージは出力されるがなにもしない. marksize の妥当性はこのルーチンでチェックされず, Solid.mark, Solid.vmark を呼んだときにチェックされる.

tpat (Fixnum(2)) <SCPACK::SCSTNP>

SCTNU, SCTNV で用いるトーンパターン番号を設定する. tpat = [itpat1, itpat2]のとき、itpat1, itpat2はそれぞれ表と裏のトーンパターン番号(初期値は1)である. DCL manual 8.1.4- 8.1.10節参照.

また、これらのパラメタはメソッドとして用いることができる。すなわち、Solid.nbitsでパラメタnbitsの参照が、Solid.nbits=でパラメタnbitsの変更ができる。

Solid.set(key, val)

パラメタの設定を行う。

引数

使用例

Solid.set("markindex", 3)      # 3次元マーカーインデクスを3にする。

Solid.get(key)

パラメタを参照する。

引数

使用例

Solid.get("markindex")      # 3次元マーカーインデクスを参照する。

Solid.plot(x, y, z, temp=nil)

折れ線を描く.

引数

備考

  1. このメソッドは SCPLU を呼んでいる。
  2. 各座標の配列の長さは 2 以上でなければならない.
  3. 描く折れ線の属性はパラメタ lineindex で設定する.

Solid.vplot(x, y, z, temp=nil)

V座標系で折れ線を描く.

引数

備考

  1. このメソッドは SCPLV を呼んでいる。
  2. 各座標の配列の長さは 2 以上でなければならない.
  3. 描く折れ線の属性はパラメタ lineindex で設定する.

Solid.mark(x, y, z, temp=nil)

マーカー列を描く.

引数

備考

  1. このメソッドは SCPMU を呼んでいる。
  2. 各座標の配列の長さは1以上でなければならない.
  3. 描くマーカーの属性はパラメタ marktype, markindex, marksize で設定する.

Solid.vmark(x, y, z, temp=nil)

V座標系でマーカー列を描く.

引数

備考

  1. このメソッドは SCPMV を呼んでいる。
  2. 各座標の配列の長さは1以上でなければならない.
  3. 描くマーカーの属性はパラメタ marktype, markindex, marksize で設定する.

Solid.tone(x, y, z, temp=nil)

三角形閉領域をぬりつぶす.

引数

  1. このメソッドは SCTNU を呼んでいる。
  2. 領域をぬりつぶすトーンパターン番号はパラメタ tpat で設定する.

Solid.vtone(x, y, z, temp=nil)

V座標系で三角形閉領域をぬりつぶす.

引数

  1. このメソッドは SCTNV を呼んでいる。
  2. 領域をぬりつぶすトーンパターン番号はパラメタ tpat で設定する.