次のプログラム jump2 は両対数座標のグラフを描く例です. grstrn ルーチンで正規化変換の変換メソッド(元関数)番号を4に指定します.
対数座標軸の描画も usdaxs ルーチンにおまかせ下さい. ここで, ussttl ルーチンで指定する文字列ですが, '|', '"' など の制御文字を使うと上付や下付の添字も描けます.
' |' 上付添字の始まり ' _' 下付添字の始まり ' "' 上付または下付添字の終わり 注意: 文字列が添字で終る場合でも, 最後に必ず '"'を入れて通常 の文字モードに戻すこと.
# jump2.rb require "narray" require "numru/dcl" include NumRu include Math nmax = 100 x = NArray.sfloat(nmax) y = NArray.sfloat(nmax) #-- data ---- r = 0.2 r0 = 0.0 for i in 0..nmax-1 r = 3.6*r*(1-r) r0 += r*4 - 2.58 x2 = (i-49.0)**2 rexp = 4.0*(i+1)/nmax x[i] = 10**rexp y[i] = 1.0e5*exp(-x2) + 10.0**r0 end y[19] = 1.0e4 y[39] = 2.0e3 y[64] = 3.0e4 y[69] = 5.0e2 #-- graph ---- iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i DCL::gropn iws DCL::grfrm DCL::grswnd(1.0e0, 1.0e4, 1.0e-1, 1.0e6) DCL::grsvpt(0.2, 0.8, 0.2, 0.8) DCL::grstrn(4) DCL::grstrf DCL::ussttl('FREQUENCY', '/s', 'POWER', 'm|2"/s|2"') DCL::usdaxs DCL::uulin(x, y) DCL::grclsprogram jump2
jump2.rb: frame1