5.2 f(ix)

次のプログラム例 U1D1 では, x 方向には [1945, 1995] の範囲で等 間隔に点をとり, y 方向には配列yで与えられた座標値を結んで折れ 線を描きます. Plot.draw メソッドで x を指定するかわ りに rundef を指定する(つまり, x は定義されていないと宣言 する)と, Plot.drawx 座標値がウインドウの幅いっぱいに等間隔に ならんでいるものと解釈してグラフを描きます. このとき, Plot.draw が 呼ばれる前に x 方向のウインドウは決まっていないといけませんから, Fig のパラメタwindowx 方向だけを陽に与えています. ここでも, y 方向は未定義にします. なお, rundef の値は, Common.getメソッドで参照していま す.

#
# u1d1.rb

require "narray"
require "numru/advanceddcl"

include NumRu::AdvancedDCL
include NMath

nmax = 51
xmin = 1945
xmax = 1995

y = NArray.sfloat(nmax)

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

rundef = Common.rundef

#-- graph ----
Dev.open
Frame.new

Fig.window = [xmin, xmax, rundef, rundef]
Axis.title('TIME', 'YEAR', 'TEMPERATURE', 'DEG')

Plot.draw(rundef, y)
Axis.draw

Dev.close

PROGRAM U1D1

\resizebox{10cm}{!}{\includegraphics{u1d/u1d1.eps}}
u1d1.rb: frame1