ポリライン, ポリマーカー, テキストなどの線分による出力プリミティブは,
個別にラインインデクスを指定することができましたから, それぞれ, フルに
3桁の値で指定すると, カラーのライン, マーカー, テキストとなります. ま
た, 用いられている線分のラインインデクスに関す
る内部変数を変更できるようになっていますから, 容易にカラー化できます.
次の COLOR2 プログラムで, カラー線画の実例を見てみましょう.
Axis::Lin モジュールで座標軸関連のパラメタの管理を行ないますが,
そのなかの indext1, indext2, indexl1, indexl2 がラインインデクスの設定に関するものです. indext1
と indext2 は座標軸および目盛を描く線分の, indexl1 と
indexl2 はラベルおよびタイトルの文字を描く線分のラインインデク
スを指定するパラメタです. 最後が '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.closePROGRAM COLOR2