長年にわたるデータを解析した人なら, 日付軸をつけることの面倒くささは十分ご承知でしょう.
DclDrawAxisCalendarを用いると, 閏年まで考慮した完璧な日付軸を容
易に作画することができます.
まず, 作画しようとする座標軸については, 日数を単位として正規化変換を設
定する必要があります. また, 座標軸の作画は, ユーザー座標系において0に相当す
る位置からおこなわれるので, 下の例の場合のように1996年1月1日から3月
31日まで91日分をビューポートいっぱいに割り当てたいときには, ウインドウ
の両端値を UXMIN が 0.0, UXMAX が days(= 90)と指定します.
日付に関する座標軸は, サブルーチン DclDrawAxisCalendar で簡単に描くことができます. 最初の引数では, これまで通り, 座標軸を描く場所を指定します. 2番めの引数は起日, つまり座標軸を描きはじめる最初の日です. これはdcl_date型の構造体を与えます. 構造体の中身はyear, month, dayの3つの整数であり, 下の例のようにしてあらかじめ指定します. さらにndオプションに, 何日間分を描くかを指定します.
program calendar
use dcl
integer,parameter :: days=90
type(dcl_date) :: date
date%year = 1991
date%month = 4
date%day = 1
call DclOpenGraphics()
call DclNewFrame
call DclSetWindow( 0.0, real(days), -1.0, +1.0 )
call DclSetViewPort( 0.2, 0.8, 0.2, 0.8 )
call DclSetTransFunction
call DclDrawAxisCalendar( 'bt', date, nd=days )
call DclDrawAxis( 'l', 0.25, 0.05 )
call DclDrawAxis( 'r', 0.25, 0.05 )
call DclDrawTitle( 'l', 'Correlation', 0.0 )
call DclDrawTitle( 't', 'Calendar', 0.0, 2 )
call DclCloseGraphics
end program
|
![]() |
|
DclDrawAxisCalendar (UCXACL,UCYCL, UCXADY,UCYADY, UCXANM,UCYANM, UCXAYR,UCYAYR) |
日付座標軸を描く. |