[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002500] Re: treatment of -inf
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002500] Re: treatment of -inf
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 11 Nov 2005 10:16:07 +0900
堀之内です.
> 説明不足でした. 座標軸を log スケールでグラフを表示するならば
> それで可能な気がします. しかし, 今やりたいことはエネルギースペクトルの
> 2 次元表示なので, log をとった変数を一度作成してから等値線を描く,
> という手順になります. その場合, log を計算した後の変数の値として
> -inf が格納されるためにうまくいかないんだと思うんですが.
>
> 2 次元等値線を log スケール間隔で引く機能は DCL にはありませんよね.
ということは、ほんとはコンターラベルが log10 の値で
0, 1, 2, などとなるより、元の値で 0, 10, 100,.. となるのが
嬉しいんですね。私もよくやりますが、レベルを陽に生成してます。
やり方はいろいろ。
levs = [1,2,5,10,20,50,100] # 全部指定する場合
na = NArray[1.0, 2.0, 5.0] # これを桁をずらして繰り返す
levs = na.to_a + (na*10).to_a + (na*100).to_a + [1000.0]
na = NArray[1.0, 2.0, 5.0] # これを桁をずらして繰り返す (2)
levs = Array.new
(-2..3).each{|i| levs += (na*10**i).to_a }
前から、GGraph に log スケールの自動コンターレベル決めを導入しよ
うと思ってるのですが、こんな感じで簡単に決められるので、良く使っ
てるにも関わらずまだやってません。
# 私は gtview コマンドはあまり使わず、irb で対話的にするか
プログラム書く(irbのヒストリーを使って作ったり)ことが多い
ので、必要に応じてその場でいろいろ対処してます。(残すのはシェ
ルプログラムでなくrubyプログラム)