7.2 描画領域の変更

前章までの例では, 用紙の形は長方形なのに, そこに最大内接する正方形の領 域をとって [0,1]×[0,1] のV-座標系を考え, その中だけに図を描いてき ました. これに対して, 紙一杯に図を描く例が次のプログラム LAY2 で す. 物理的な描画範囲一杯に作画したい時は, Frmae モジュールのパラメタlfull.TRUE. にし ます. 長辺がV-座標系で[0,1]となりますから, ここではビューポートを (0.15,0.95,0.15,0.65) として物理的な作画範囲に納まるようにとって います. この範囲は出力装置によって異なりますので, プログラムによっては 出力する際にエラーを起こす可能性もあります. 御注意下さい.

 
#
# lay2.rb

require "narray"
require "numru/advanceddcl"

include NumRu::AdvancedDCL
include NMath

nmax = 401
xmin = 1600.0
xmax = 2000.0

x = NArray.sfloat(nmax)
y = NArray.sfloat(nmax)

#-- data ----
x.indgen(xmin, (xmax-xmin)/(nmax-1))
y0 = 0.5
for n in 0..nmax-1
  y[n] = 5.0*y0 + 10.0
  y0   = 3.7*y0*(1.0-y0)
end

#-- graph ----
Dev.open
Frame.lfull = true
Frame.new

Fig.window = [xmin, xmax, 11.0, 15.0]
Fig.viewport = [0.15, 0.95, 0.15, 0.65]

Axis.title('TIME', 'YEAR', 'TEMPERATURE', 'DEG')
Axis.draw

Plot.draw(x, y)

Dev.close

 
PROGRAM LAY2

\resizebox{10cm}{!}{\includegraphics{layout/lay2.eps}}
lay2.rb: frame1