[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003915] Re: [dennou-ruby:003914] Re: 対数軸の描画設定に関して (GGraph)
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003915] Re: [dennou-ruby:003914] Re: 対数軸の描画設定に関して (GGraph)
- From: Ryo Mizuta <rmizuta@xxxxxxxxxxxxx>
- Date: Tue, 17 Nov 2015 10:50:33 +0900
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mri-jma.go.jp; s=default; t=1447725044; bh=HORXn4tW71QGfYVCtPNZ3b51gMWHdEwMvVPpV382xno=; h=Subject:To:References:From:Date:In-Reply-To; b=j+nsSd7Rtip+5FLHD2WKORCtlruv16+MBnq3U8zmLkCiCNTheNXEPja5O7MLAMRxX /SNs5noBKoTrc3KDHtn65UmXvrVMxY9AoJSS1owct4qNd+BRnpU/jUoHl0EBeN0woQ TzRFiAsRmObiTwRzJyi2NB7aIceDU+7rBJ9PVHI8=
水田です。
なんだかごぶさたしています。
DCL::grfrm でリセットされてしまうオプションを制御するには
以下ようにする方法があります。
サンプルスクリプトの例でしたら最後の
DCL.usiset('itypey', 3)
GGraph.line tmp.cut(hash), true, 'title'=>"Fig.5
(GGraph/DCL.usiset('itypey', 3))", 'exchange'=>true
の手前に
DCL::grfrm
GGraph.next_fig("no_new_fig"=>true)
の2行を入れると対数軸が 10, 100, 1000 になります。
"no_new_fig"はGGraph.lineなどの中でDCL::grfrm,grfigを呼ばなくする
オプションです。代わりにその前に自分でDCL::grfrmを呼び、その後に
'itypey'などのパラメータを設定すればリセットされずに使われます。
私はこれを使っています。"no_new_fig"はこの用途のためにあるみたい
ですので、仕組みが分かればこれが手っ取り早いかと思います。
grfrm で何がリセットされるというところまで知ってないと使いこなせない
のが難点ですかね。
--
水田 亮 (rmizuta@xxxxxxxxxxxxx)
気象庁気象研究所気候研究部
305-0052 つくば市長峰1-1
On 2015-11-16 17:55, Takeshi Horinouchi wrote:
> 松葉さま
>
>> 電脳 Ruby のみなさま:
>> 京都大学理学研究科 M1 の松葉と申します.
>> 初投稿で長文ですがご容赦ください.
>
> コメントありがとうございます。返信遅くなってごめんなさい。
>
> uspack は,DCL の他の "pack" と違って,いくつかの
> パラメターが初期化時に強制的にリセットされてしまうのが,
> 面倒なところです。あと,軸関係の細かな
> パラメターは説明が乏しくてよくわからない --- というのは,
> 今回マニュアルを見直して思いました。(だからこそ松葉さんも
> ソースで確認するはめになったのだろうと思います)
>
> 現状の GGraph で座標軸を凝りたい場合,お任せをやめて
> 自分で描くと良いです。例えば
>
> GGraph.set_axes("yside" => "r")
>
> とすると,左側の y 軸は書かなくなりますから,
> 描画後に自分で DCL.uylog を呼ぶ。"yside" などのパラメターの説明は
> ここにあります:
>
> https://www.gfd-dennou.org/arch/ruby/products/gphys/doc/ggraph.html#label-10
>
> お任せでも細かい制御ができるようにするには,GGraph において
> 幾つかの uspack パラメターを陽にサポートするようにすれば
> いいわけで,メールをもらった時はそうしようかと考えて
> ました --- それを検討しないままずるずる時間がたって今日に
> なってしまいました(ごめんなさい)。でも,検討を始めてみると,
> どうも uspset/uspget のパラメター説明が曖昧で,
> ちょっと萎え気味です。(機械的に同じ名前でパラメターを
> 作っても,ちゃんと説明しないとわけがわからなそうで...
> しなくていい?)
>
> 堀之内
>
>> 電脳 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
>
> 堀之内 武
> 北海道大学 地球環境科学研究院 地球圏科学部門
> 〒060-0810 札幌市北区北10条西5丁目
>
>