%表題   GRPH2 図形処理上位パッケージ
%
%履歴
%\Drireki{
%         95/03/17 酒井敏
%        }
%
\Dchapterhead
\label{uuvhpack}


\section{概要}
%\label{uuvhpack.gaiyou}

UUPACK/UVPACK/UHPACK は直交座標系で折れ線やマーカー, 
棒グラフなどを描くためのサブルーチンパッケージである.
したがって, 変換関数番号としては{\tt ITR}$=1 \sim 4$(直角直線座標系)の
正規化変換に対してのみ使用できる.
それ以外の変換関数番号を指定しても動作は保証されない.

\vspace{1em}
USPACK (第\ref{uspack}章)の折れ線は, 
このパッケージのルーチンを使用して描かれている.

\vspace{1em}
折れ線を描くルーチン({\tt UULIN}, {\tt UULINZ})およびマーカー列を描く
ルーチン({\tt UUMRK}, {\tt UUMRKZ})に関しては, 次節で述べる未定義値を
引数に指定しなければ, GRPH1 における対応するルーチン
({\tt SGPLU}, {\tt SGPLZU} および {\tt SGPMU}, {\tt SGPMZU})と
同じ動作をする. 
(ただし, ラインインデクス等のパラメータは独立である.)

\vspace{1em}
UUPACK/UVPACK/UHPACK それぞれのパッケージの機能は
次のようになっている.
\begin{quote}
\begin{tabular}{lp{12cm}}
  UUPACK & : X軸とY軸が対等なグラフ要素 (折れ線など) 
	     およびパラメタ管理.\\
  UVPACK & : X軸が独立変数でY軸が従属変数となるようなグラフ要素. \\
  UHPACK & : Y軸が独立変数でX軸が従属変数となるようなグラフ要素. \\
\end{tabular}
\end{quote}

これらのサブルーチン群は, 変数の数によって次の4つのタイプに分類
される.
\begin{center}
\begin{tabular}{ccc} \hline
        &  独立変数の数 &  従属変数の数 \\
\hline
TYPE 1  &   $ N $       &    $ N $           \\
TYPE 2  &   $ N $       &    $ N \times 2 $  \\
TYPE 3  &   $N+1$       &    $ N $  \\
TYPE 4  &   $N+1$       &    $ N \times 2 $   \\
\hline
\end{tabular}
\end{center}
ここで, 独立変数として指定する配列の数は常に1つで, 
その長さが$N$ または $N+1$ である.
従属変数は1つの配列の長さは常に $N$ であるが, 
2つの配列を指定するもの ($ N \times 2 $)がある.
\vspace{1em}

TYPE 3 と TYPE 4 のルーチンはこのパッケージでは「箱グラフ」と
呼んでいる.
これは, 指定した独立変数の「位置」にある幅の棒を描く棒グラフに対して,
指定した独立変数の「区間」を埋める箱を描くものである.
この中の{\tt U[VH]BXL}, {\tt U[VH]BXLZ} は階段状のグラフを描くものである.

\section{未定義値 (RUNDEF) の解釈}

UUPACK/UVPACK/UHPACK のサブルーチンは, 独立変数または従属変数に
未定義値 (RUNDEF) を指定することができる.
この値が指定された時の解釈は次の通り.
\begin{description}
    \item [独立変数が {\tt RUNDEF} の時:]
	 独立変数に関して等間隔のデータであると解釈される.
	独立変数の定義域は {\tt USIDV(UMIN, UMAX)} で指定される.
	この範囲が指定されていない場合は, ウインドウ全体を
	独立変数の定義域とみなす.
        TYPE1 および TYPE2 のルーチンでは定義域を{\tt N-1}で,
        また, TYPE3 および TYPE4 のルーチンでは定義域を{\tt N}
        で均等に分割する.
    \item [従属変数が {\tt RUNDEF} の時:]
	内部変数 {\tt UREF} (初期値=0) の値が指定されたものとみなす.
	ただし, 従属変数に RUNDEF が指定できるのは, 
	2つの従属変数をもつ TYPE2, TYPE4 のルーチンのみである.
\end{description}
従属変数の未定義値は, 棒グラフのように
棒の上下の位置を指定するようなサブルーチンで, 
常に座標軸から指定された位置までの棒を描くような場合を想定している.




