とにかく計算はできるようになったのでデータはどんどん出てくるが,
一つのグラフに一つのデータでは紙がいくらあっても足りない.
かといって,
USGRPH
の後で SGPLU
あるいは UULIN
(これは片方の座標軸の点列情報を等間隔とみなして折れ線を描く機能を持った,
基本的には SGPLU
と同じような動作をする作画ルーチンである)等を使って折れ線だけ追加すると,
座標軸からはみ出してしまう可能性もある.
uspk04.f はこのような場合のプログラム例である.
USSPNT
は,
X, Y軸のスケーリング範囲に含めるべきデータを指定して作画範囲を決める.
このルーチンは USGRPH
を呼ぶ前に何度でも呼ぶことができる.
(USSPNT
は X あるいは
Y 軸方向のどちらかを「不定」として片側のみのスケーリングもできる.)
USGRPH
はこのルーチンで指定したデータを含むようにスケーリングを行うので,
USGRPH
の後でSGPLU
あるいはUULIN
を使って折れ線を追加しても, 座標軸からはみ出すことはない.
また, USGRPH
では折れ線のラインインデックスやラインタイプを直接指定することはできないが,
USGRPH
は単にUULIN
を呼んでいるだけなので,
あらかじめUUSLNT/UUSLNI
でこれらを指定しておけば,
USGRPH
で描かれる折れ線の属性を変えることができる.
ところで,
uspk04.f で描かれる3本の線はどれも同じ様な折れ線でありながら,
1本はUSGRPH
で,
あとの2本はUULINZ
で描く,というのは何となく
不平等な感じで気持ちが悪い.
そんな時, USGRPH
をばらして使ってやれば気持ちのよいプログラムが書ける.
uspk05.fはuspk04.fと全く同じ結果を得るプログラムである.
USDAXS
は, 現在設定されている正規化変換に対して,
とにかく適当な座標軸 (デフォルト座標軸) を描くものである.
ここで描かれる座標軸の位置はUSCSET
の内部変数'CXSIDE'
, 'CYSIDE'
で指定され, 初期値はそれぞれ'BT'
, 'LR'
である.
したがって, USDAXS
一行で4本の座標軸が描かれることになる.
USDAXS
を使うと,
データを与える部分と折れ線を描く部分が完全に独立して書けるので,
よりきれいなプログラムとなり,
DO ループで複数の折れ線を書くときなどは便利である.
また, この書き方では折れ線を描かずに,
SGPMU
あるいはUUMRK
等でマーカー列を描くことも自由にできる.
ただし, USDAXS
は単に座標軸を描くだけのルーチンなので,
その前に USPFIT
によって変換関数に必要なパラメータの設定,
およびGRSTRF
によって変換関数の確定をしておく必要がある.
以降の例題ではもっぱら USGRPH
を用いているが,
uspk05.fの様にこれを USSPNT
,
USPFIT
, GRSTRF
, USDAXS
および
UULIN
に分解しても全く同じ結果が得られる.
(事実, USGRPH
もこれらの4行で構成されている.)
なお, USSPNT
で設定された値は,
USGRPH
またはUSDAXS
を実行した際にリセットされる.