好みの場所に好みの軸を

座標軸をウインドウ・ビューポートの境界線以外のところにも描くことができます. また, 軸の表現もいろいろ変えられます.

座標軸を境界線以外のところに描きたいときには, 横方向の座標軸には 'h' を, 縦方向の座標軸には 'v' を, 場所をあらわす引数として指定します. この例ではDclDrawAxisDclDrawTitleのルーチンで 'h' を指定して, 座標軸とタイトルを描いています. 具体的にどこに軸を描くかはDclDrawAxisの section オプションで指定します. この例 の場合, 0.0と指定することによってユーザー座標系でみたy座標の値が0.0のところに x 軸を描きます.

また, この例の x 軸では, 目盛りと目盛りの間にラベルを描いてみました. DclSetParmで内部変数'ENABLE_SPAN_LABELING'.TRUE. とすれば, 目盛りと目盛りの間にラベルを描きます. ただし, 注意すべきことは, ほかの座標軸を描くときにもこの設定が影響しますので, ラベルを描き終ったら.FALSE.(初期値)に戻しておく必要があります. y 軸では, 内部変数'TICKMARK_SIDE'を-1に設定して, 目盛りを外向きにつけました(初期値は1で, 内向きに目盛をつけます).

axis.f90
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)
タイトルを描く.