これまでの X 軸は右向き, Y 軸は上向きを正としてきたが,
USLSET で内部変数'LXINV' ,
'LYINV' を.TRUE. にすると
それぞれの軸の方向を逆にすることができる.
これは, 常に世の中を逆さまに見ている人々のための機能である.
しかし, この機能を使うにはちょっと注意が必要である.
問題は, この例のように Y 軸を下向きにした場合,
X 軸をグラフの上側に描くことから生じる.
X 軸をグラフの上側に描くにはuspk07.fで説明したように
CALL USCSET('CXSIDE', 'T')
とすればよいように思えるが,
これだけでは X 軸そのもの(線分と目盛)は描いても,
ラベルやタイトルなどが一切出力されない.
これは, 座標軸とラベルを描くルーチンUXAXDV/UYAXDVが
UZPACKの内部変数'LABELzs' を参照して,
場所に応じてラベルを描くかどうか判断しており,
初期状態ではグラフの上側と右側に
ラベルを描かないようになっているためである.
(これまで箱型の座標軸を描いたときに,
上側や右側の軸にはラベルやタイトルがついていなかったことを
思い出して欲しい. )
ラベルに関してはほとんどUZPACKの管理下にあるので,
当然USPACKが描くラベルもこの内部変数に自動的に従うことになる.
これに対して, サブラベルとタイトルはUSPACKの管理下にあり,
USCSET の内部変数'CXSIDE', 'CYSIDE' で指定される
1文字目の場所にサブラベル(単位等)とタイトルを描くことになっている.
しかしながら,
ラベルがないところにサブラベルやタイトルを描いてもしかたがないので,
USPACKはUZPACKの管理情報を盗み見して,
内部変数'LABELzs' が.FALSE. のところには
これらを描かないことにしている.
要するに, ラベルやタイトルなど座標軸に付属する文字はすべて
'LABELzs' によって制御されているので,
グラフの上側や右側に座標軸とタイトルを出力するためには,
あらかじめUZLSET で'LABELzs' を.TRUE.
にしておけばよい.