前章までの例では, 用紙の形は長方形なのに, そこに最大内接する正方形の領 域をとって [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.closePROGRAM LAY2
lay2.rb: frame1