[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:003912] 対数軸の描画設定に関して (GGraph)



電脳 Ruby のみなさま: 
京都大学理学研究科 M1 の松葉と申します.
​初投稿で長文ですがご容赦ください.​

やりたいことは簡単で,対数軸を 10, 100, 1000 のようにしたくて,
これを設定ひとつで表記できるようにしたいわけなのです.
ところが,GGraph の描画メソッドと共存できなくて困っています.

GGraph.set_fig 'itr'=>2 としておきます.

通常,対数軸を 10,100,1000 のように表記するには,DCL.ulylog を使って
描くのがマニュアル通りかと思いますが,ここでは,DCL.us
​y​
axs(s) で座標軸を
おまかせで描画させることを考えます.

DCL.ulylog で対数軸を 10, 100, 1000 表記しようとするならば,
マニュアルにある通り DCL.uliset('iytype', 3) を呼べば変わります (動作確認).
http://ruby.gfd-dennou.org/products/ruby-dcl/ruby-dcl-doc/grph2/node55.html

で,おまかせ座標軸描画 DCL.us
​y​
axs(s) でも内部で DCL.ulylog を呼んで
いるので,同様に DCL.uliset で 'iytype' を変えれば変更できる
​のでは,と思っても​
実は変更が効きません.
FortranDCL のソースを確認すると,このときには実は DCL.usiset('itypey', 3) と
しないと,設定の変更が DCL.ulylog に受け渡されないことが分かっています
(これも動作確認).
https://www.gfd-dennou.org/arch/ruby/products/ruby-dcl/ruby-dcl-doc/grph2/node124.html
# GGraph の下請けで動いている DCL のソースはどこを参照したらいいかが
# 分からなかったので Fortran 版
​にて​
確認
​した次第です​

ここからが本題ですが,同じように内部でおまかせ座標軸描画のルーチンを
呼んでいるはずの GGraph の描画メソッド (たとえば GGraph.line
​) ​
で描いた
ときには,DCL.usiset('itypey', 3) としてもなぜか反映されません.
内部で GGraph.axes に委託して最終的に DCL.us
​y​
axs(s) に描画を任せる
はずなので,期待した動作にならないのがどうしても気になります.

ここで,使用し
​た​
GPhys のバージョン
​は​
1.4.3
​.2​
で,DCL のバージョンは
6.0.2 でした (debian パッケージの最新版).

お手数ですが,
​ちょっと​
​調査してみていただけますでしょうか.​
​よろしくお願いいたします.​

​なお,​
サンプルスクリプトと手許の環境での実行結果を付しておきました.
​元​
データはチュートリアルのページから
​取得しております​
http://ruby.gfd-dennou.org/products/gphys/tutorial/air.2012-01.nc

--
松葉 史剛 (Fumitaka Matsuba)
京都大学大学院 理学研究科 地球惑星科学専攻
地球物理学教室 気象学研究室 M1
E-mail: matsuba@xxxxxxxxxxxxxxxxxx


Attachment: dcl.pdf
Description: Adobe PDF document

Attachment: tutorial.rb
Description: Binary data