これまで, 同じ座標軸作画ルーチンを呼んでも, 下側と左側にはラベルを描き,  
上側と右側は目盛だけでラベルは描きませんでした. 左右両方に異なったラベ  
ルの座標軸を描きたい時にはどうすれば良いのでしょう(uxyz6).   
  
  
  
座標軸のラベルを描くか描かないかは, UZPACK の管理する内部変数によって 制御されています. この例のように, 右側の座標軸に関しては 'uzlset' ルーチンで 'LABELYR' という内部変数を .true. に することによって, 右側の座標軸についてもラベルが描けます. 左側は 'LABELYL', x軸の上と下はそれぞれ, 'LABELXT', 'LABELXB' によって制御されています.
# uxyz6.rb
require "narray"
require "numru/dcl"
include NumRu
include Math
id0 = 19911201
nd = 720
#-- graph ---
iws = (ARGV[0] || (puts ' WORKSTATION ID (I)  ? ;'; DCL::sgpwsn; gets)).to_i
DCL::gropn iws
DCL::uzfact(0.8)
DCL::grfrm
DCL::grswnd(-180.0, 180.0, nd, 0.0)
DCL::grsvpt(0.2, 0.8, 0.2, 0.8)
DCL::grstrn(1)
DCL::grstrf
DCL::uxaxdv('B', 10.0, 60.0)
DCL::uxaxdv('T', 10.0, 60.0)
DCL::uxsttl('B', 'LONGITUDE', 0.0)
DCL::ucyacl('L', id0, nd)
DCL::uzlset('LABELYR', true)
DCL::uyaxdv('R', 20.0, 100.0)
DCL::uziset('IROTCYR', -1)
DCL::uysttl('R', 'DAY NUMBER', 0.0)
DCL::uxmttl('T', 'UXAXDV/UCYACL', 0.0)
DCL::grcls
  
program uxyz6  
 
 
  
  
右側の座標軸は uyaxdv によって描きました. 13行めで uymin   
が rnd(=720), uymax が 0.0 とウインドウを指定したので, ラ  
ベルの値が上から下に増えています. また, uziset ルーチンで内部変  
数 'IROTCYR' を-1にしたので, uysttl で描いた 'DAY  
NUMBER' という座標軸のタイトルも180度回転しています. この回転角の値は,  
90度を単位とする整数値で指定します.  
  
   
  
  
左側の座標軸は ucyacl ルーチンで描いたのですが, この例からわかる  
ように, 日数のラベルが描けないような場合には,適当に判断して月と年の目  
盛だけが描かれます. なお, ucxacl/ucyacl の下位ルーチンを呼ぶこと  
によって, 日, 月, 年の座標軸を別々に描くこともできます.  
  
  
  
なお, この例では10行めでuzfact を呼んで, 文字や目盛のサイズを全 体的に小さく(デフォルトの0.8倍)して座標軸を描いています.