座標軸をウインドウ・ビューポートの境界線以外のところにも描くことができます. また, 軸の表現もいろいろ変えられます.
座標軸を境界線以外のところに描きたいときには, 横方向の座標軸には 'h' を, 縦方向の座標軸には 'v' を, 場所をあらわす引数として指定します. この例ではDclDrawAxisとDclDrawTitleのルーチンで 'h' を指定して, 座標軸とタイトルを描いています. 具体的にどこに軸を描くかはDclDrawAxisの section オプションで指定します. この例 の場合, 0.0と指定することによってユーザー座標系でみたy座標の値が0.0のところに x 軸を描きます.
また, この例の x 軸では, 目盛りと目盛りの間にラベルを描いてみました. DclSetParmで内部変数'ENABLE_SPAN_LABELING'を.TRUE. とすれば, 目盛りと目盛りの間にラベルを描きます. ただし, 注意すべきことは, ほかの座標軸を描くときにもこの設定が影響しますので, ラベルを描き終ったら.FALSE.(初期値)に戻しておく必要があります. y 軸では, 内部変数'TICKMARK_SIDE'を-1に設定して, 目盛りを外向きにつけました(初期値は1で, 内向きに目盛をつけます).
program axis use dcl call DclOpenGraphics call DclNewFrame call DclSetWindow( 1985.0, 1990.0, -2.0, +2.0 ) call DclSetViewPort( 0.2, 0.8, 0.3, 0.7 ) call DclSetTransFunction call DclSetParm( 'ENABLE_SPAN_LABELING', .true. ) call uxsfmt( '(i4)' ) call DclDrawAxis( 'h', 0.25, 1.0, section=0.0 ) call DclSetParm( 'ENABLE_SPAN_LABELING', .false. ) call DclDrawTitle( 'h', 'year', +1.0 ) call DclSetParm( 'TICKMARK_SIDE', -1 ) call DclDrawAxis( 'l', 0.25, 1. ) call DclDrawTitle( 'l', 'S.O.Index', 0. ) call DclDrawTitle( 't', 'Axis', 0.0, sw=2 ) call DclCloseGraphics end program |
|
DclDrawAxis (UXAXDV,UYAXDV) |
目盛間隔、ラベル間隔を指定して座標軸を描く. |
DclDrawTitle (UXMTTL,UYMTTL, UXSTTL,UYSTTL) |
タイトルを描く. |