複数のデータがグラフに入るようにする

DclDrawScaledGraphを用いて1本の折れ線をかいた後でも, 別のデータについて DclDrawLineを呼べば, 1つの図の中に何本も折れ線をかくことができます. しかしそのままでは追加した折れ線が座標軸からはみ出してしまう可能性があります.

下のプログラムはこのような場合の例で, DclScalingPointを用いて, 追加する折れ線が座標軸のスケーリング範囲に 含まれるように設定します.

multi.f90

program multi

  use dcl
  integer, parameter :: n=200, m=5
  real, dimension(0:n) :: x, y0, y1, y2, t
  real, dimension(m) :: a

!-- データ ----

    do j=1,m
      a(j) = (-1)**j *2./((j*2-1)*DCL_PI)
    end do

    x = (/( real(i)/n, i=0,n )/)
    t  = 2*DCL_PI*x

    y0 = -0.5
    where (x >= 1./4. .and. x <= 3./4.) y0 = 0.5
    y1 = a(1)*cos(t)
    y2 = 0.
    do j=1,m
      y2 = y2 + a(j)*cos((j*2-1)*t)
    end do

!-- グラフ ----

    call DclOpenGraphics()
    call DclNewFrame

    call DclScalingPoint( x, y0 )
    call DclScalingPoint( x, y1 )
    call DclScalingPoint( x, y2 )

    call DclFitScalingParm
    call DclSetTransFunction

    call DclDrawScaledAxis

    call DclDrawLine ( x, y0, index=5 )
    call DclDrawLine ( x, y1, type=3 )
    call DclDrawLine ( x, y2, type=2, index=2 )

    call DclCloseGraphics
end program



関連リンク

DclScalingPoint
(USSPNT)
グラフの中に含めたい座標点を設定する.
DclSetTransFunction
(GRSTRF)
変換関数を確定する.

* 括弧の中は、対応するf77インターフェイス名.