11.2 カラーライン

ポリライン, ポリマーカー, テキストなどの線分による出力プリミティブは, 個別にラインインデクスを指定することができましたから, それぞれ, フルに 3桁の値で指定すると, カラーのライン, マーカー, テキストとなります. ま た, 用いられている線分のラインインデクスに関す る内部変数を変更できるようになっていますから, 容易にカラー化できます. 次の COLOR2 プログラムで, カラー線画の実例を見てみましょう.

Axis::Lin モジュールで座標軸関連のパラメタの管理を行ないますが, そのなかの indext1, indext2, indexl1, indexl2 がラインインデクスの設定に関するものです. indext1indext2 は座標軸および目盛を描く線分の, indexl1indexl2 はラベルおよびタイトルの文字を描く線分のラインインデク スを指定するパラメタです. 最後が '1' のほうが小さめの目盛やラベ ル, タイトルを描く時に用いられ, '2' のほうは大きめのものを描く時 に用いられます.

この例では, 標準のカラーマップを用いた時, 目盛は淡青で描き, 小さめの文 字は濃青で, 大きめの文字は紫で描きます. 太さは, 小さめの目盛は細線で, それ以外はやや太くなります.

折れ線をPlot.draw ルーチンで描くのですが, そのラインインデクスは パラメタlineindex を 24, 赤色の太い線と指定しています.

#
# color2.rb

require "narray"
require "numru/advanceddcl"
include NumRu
include NumRu::AdvancedDCL
include NMath


nmax = 50
x = NArray.sfloat(nmax+1)
y = NArray.sfloat(nmax+1)

#-- data ---
x.indgen(1950.0, 1.0)
r    = 3.7
y[0] = 0.5
for n in 0..nmax-1
  y[n+1] = r*y[n]*(1.0-y[n])
end
yave = DCL.rave(y, nmax+1, 1)
y = -4 * (y - yave)

#-- graph ---
Dev.open

Frame.new

Fig.window=[x[0], x[nmax], -1.5, 2.0]
Fig.viewport=[0.2, 0.9, 0.2, 0.9]
Fig.transnum = 1

Text.ifont = 2
Axis::Lin.indext1 = 402
Axis::Lin.indext2 = 404
Axis::Lin.indexl1 = 303
Axis::Lin.indexl2 = 123
Axis::Lin.xaxdv('B', 2.0, 10.0)
Axis::Lin.xaxdv('T', 2.0, 10.0)
Axis::Lin.xsttl('B', 'YEAR', 0.0)

Axis::Lin.yaxdv('L', 0.1, 0.5)
Axis::Lin.yaxdv('R', 0.1, 0.5)
cttl = Text.spchar(131) + 'T [K]'
Axis::Lin.ysttl('L', cttl, 0.0)

Axis::Lin.xmttl('T', 'INTERANNUAL VARIATION', 0.0)

Plot.lineindex = 24
Plot.draw(x, y)
Dev.close

PROGRAM COLOR2