対数座標のグラフを描くには, DclSetTransNumberを呼んで変換関数番号を指定します. 両対数のグラフを描くときは, 引数をDCL_LOG_LOGとします. 最初のLOGはx座標が対数, 後のLOGはy座標が対数であることを意味しています. y座標のみ対数座標にし, x座標を線形座標にするには引数をDCL_LIN_LOG, 逆のときはDCL_LOG_LINとします. なにも指定しないときにはDCL_LIN_LIN を指定したことになり, x座標、y座標ともに線形座標になります.
DclSetTransNumberは正規変換を確定する前に呼ばなければなりません. 正規変換を確定するのはDclSetTransFunctionです. DclDrawScaledGraphにはその確定作業が含まれているので, DclDrawScaledGraphでグラフを描く場合にはそれより前にDclSetTransNumber を呼びます.
program log
use dcl
integer,parameter :: n=100
real(selected_real_kind(12)) :: a, r
real, dimension(n) :: x, y
!-- データ ----
r = 0.2d0
a = 3.6d0
r0 = 0.
do i=1, n
r = a*r*(1.d0-r)
r0 = r0 + r*4 - 2.58
x2 = (i-50)**2
rexp0 = 4.*i/n
x(i) = 10**rexp0
y(i) = 1.e5*exp(-x2) + 10.**r0
end do
y(20) = 1.e4
y(40) = 2.e3
y(65) = 3.e4
y(70) = 5.e2
!-- グラフ ----
call DclOpenGraphics()
call DclNewFrame
call DclSetTransNumber( DCL_LOG_LOG )
call DclDrawScaledGraph( x, y )
call DclCloseGraphics
end program
|
![]() |
|
DclSetTransNumber (GRSTRN) |
変換関数番号を設定する. |
|
DclSetTransFunction (GRSTRF) |
変換関数を確定する. |
* 括弧の中は、対応するf77インターフェイス名.