対数座標軸を描く

対数座標軸を描くには, まず DclSetTransNumber ルーチンによって対数変換をあら わす変換関数番号を設定します. 変換関数番号については, DCL_LIN_LIN(1): 直角一様座標(線形座標), DCL_LIN_LOG(2): 片対数(y軸)座標, DCL_LOG_LIN(3): 片対数(x軸)座標, DCL_LOG_LOG(4): 両対数座標 のうちのいずれかを用います. カッコ内の数字を指定することも可能です.

対数座標軸を描くサブルーチンは DclDrawAxisLogです. ここでも, 最初の引数で座標軸を描く場所を指定します. 2番めの引数は, 1桁の範囲に描くラベルの数であり, 下の例ではx軸については1となっていて, 10nのところにのみラベルが描かれます. また, y軸については3となっていて, 10n以外にも 2x10n, 5x10nにラベルが描かれています. この引数が2ならば, 10nと2x10nに描かれます. 3番目の引数は1桁の範囲に描く目盛りの数で, ここでは1から9まですべての目盛を打つように, 9を指定しています. 8以下の場合には, 目盛間隔の狭いところから省かれます.

log.f90
program log

  use dcl

    call DclOpenGraphics()
    call DclNewFrame

    call DclSetWindow( 1.0e0, 1.0e5, 1.0e3, 1.0e0 )
    call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 )
    call DclSetTransNumber( DCL_LOG_LOG )
    call DclSetTransFunction

    call DclDrawAxisLog( 'bt', 1, 9 )
    call DclDrawTitle( 'b', '[x]', 1.0 )

    call DclDrawAxisLog( 'lr', 3, 9 )
    call DclDrawTitle( 'l', '[y]', 1.0 )

    call DclDrawTitle( 't', 'Log Axis', 0.0, 2 )

    call DclCloseGraphics

end program



関連リンク

DclSetTransNumber
(GRSTRN)
変換関数番号を設定する.
DclDrawAxisLog
(ULXLOG,ULYLOG)
対数座標軸を描く.