大きい図形の隣に小さな図形を並べる時には, DclSetViewportを使って陽にビューポートを設定することになります. 下のプログラムを見ると, まず, ビューポートを (0.15,0.45,0.65,0.95) として, 描画範囲の左上に正方形の図を描いています. 次に, DclNewFigルーチンを呼んで2番めの図を描くために必要な初期化をします. DclNewFrameと違って, 改ページはされません. そして, ビューポートを (0.15,0.95,0.1,0.5)として下の図を描いています. こうすれば縦横比が1:2の長方形の図となります.
program layout03 use dcl integer,parameter :: nmax=400 real :: x(nmax), y(nmax) !-- データ 1 ---- dt = 2.*3.14159 / (nmax-1) do n=1,nmax t = dt*(n-1) x(n) = 5.*sin(4.*t) y(n) = 5.*cos(5.*t) end do !-- グラフ 1 ---- call DclOpenGraphics() call DclNewFrame call DclSetWindow( -6., 6., -6., 6. ) call DclSetViewPort( 0.15, 0.45, 0.65, 0.95 ) call DclSetTransNumber( 1 ) call DclSetTransFunction call DclSetTitle( 'x1', 'y1', '', '' ) call DclDrawScaledAxis call DclDrawLine( x, y ) !-- データ 2 ---- iseed = 1 x(1) = 2.*(rngu3(iseed)-0.5) do n=2,nmax x(n) = 2.*(rngu3(iseed)-0.5) y(n-1) = x(n) end do y(nmax) = x(1) !-- グラフ 2 ---- call DclNewFig call DclSetWindow( -1.1, 1.1, -1.1, 1.1 ) call DclSetViewPort( 0.15, 0.95, 0.1, 0.5 ) call DclSetTransNumber( 1 ) call DclSetTransFunction call DclSetTitle( 'x2-title', 'y2-title', '', '' ) call DclDrawScaledAxis call DclDrawMarker( x, y ) call DclCloseGraphics end program |
|
DclNewFrame (GRFRM) |
新たなフレーム(ページ)を設定する. |
DclNewFig (GRFIG) |
新たな図を設定する. |
DclSetViewPort (GRSVPT) |
ビューポートを設定する. |