[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003593] Re: GGraphで時間軸を下向きにしたい。
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003593] Re: GGraphで時間軸を下向きにしたい。
- From: Masuo Nakano <masuo@xxxxxxxxxxxxxx>
- Date: Fri, 19 Oct 2012 16:01:45 +0900
中野です。
自己レスです。
とりあえず、時間軸で時間(hour)を解像しない場合だけですが
対応してみました。
おおかたの人はこれでもの足りますかね。
あまり美しくない気もするのですが
以下にgphys-1.2.2に対するパッチを付けておきます。
これで
GGraph.set_fig("window"=>[nil, nil,30, 0])
とかやるとy軸(時間軸)がひっくり返ります。
よろしくお願いいたします。
--- ggraph.rb.org 2012-04-20 12:55:51.890580151 +0900
+++ ggraph.rb 2012-10-19 15:41:06.871080236 +0900
@@ -1561,12 +1561,16 @@
t0 = window[2]
t1 = window[3]
end
- time = UNumeric.new(t0,sunits)
+ if t0 < t1 then
+ time = UNumeric.new(t0,sunits)
+ else
+ time = UNumeric.new(t1,sunits)
+ end
tstr = time.to_datetime(0.1,calendar)
jd0 = tstr.strftime('%Y%m%d').to_i
tlen = tun.convert( t1-t0, dayun )
if !axtype
- if tlen < 5
+ if tlen.abs < 5
axtype = 'h'
else
axtype = 'ymd'
@@ -1574,7 +1578,11 @@
end
if xax
- DCL.grswnd(0.0, tlen, window[2], window[3] )
+ if tlen > 0 then
+ DCL.grswnd(0.0, tlen, window[2], window[3] )
+ else
+ DCL.grswnd(-tlen, 0.0, window[2], window[3] )
+ end
DCL.grstrf
if axtype == 'h'
opts = {'cside'=>side}
@@ -1582,12 +1590,16 @@
opts['dtick2'] = labelint if labelint
DCLExt.datetime_ax(tstr, tstr+tlen, opts )
else
- DCL.ucxacl(side,jd0,tlen)
+ DCL.ucxacl(side,jd0,tlen.abs)
end
DCL.grswnd(*window)
DCL.grstrf
else
- DCL.grswnd(window[0], window[1], 0.0, tlen)
+ if tlen > 0 then
+ DCL.grswnd(window[0], window[1], 0.0, tlen)
+ else
+ DCL.grswnd(window[0], window[1], -tlen, 0.0)
+ end
DCL.grstrf
if axtype == 'h'
opts = {'yax'=>true, 'cside'=>side}
@@ -1595,7 +1607,7 @@
opts['dtick2'] = labelint if labelint
DCLExt.datetime_ax(tstr, tstr+tlen, opts )
else
- DCL.ucyacl(side,jd0,tlen)
+ DCL.ucyacl(side,jd0,tlen.abs)
end
DCL.grswnd(*window)
DCL.grstrf
2012/10/19 Masuo Nakano <masuo@xxxxxxxxxxxxxx>:
> 電脳rubyのみなさま
> 中野です。
>
> GGraphで
> 時間軸が下向きのホフメラ図をかきたいのですが、
> どうしたらよいのでしょうか?
>
> GGraph.set_fig
> の
> "window"設定でuymin > uymaxとなるように設定すると、一瞬それらしい図は出るのですが
> 軸をかくところでこけるらしく、
> /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/dcl.rb:2427:in
> `uyplbl': [UYPLBL] NUMBER OF POINTS IS INVALID. (RuntimeError)
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/dcl.rb:2427:in `uyplbl'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/dclext_datetime_ax.rb:148:in
> `datetime_ax'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:1596:in
> `__calendar_ax'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:1678:in
> `block in axes'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:1676:in `each'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:1676:in `axes'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:2465:in
> `axes_or_map_and_ttl'
> from /home/masuo/cc-env/lib/ruby/site_ruby/1.9.1/numru/ggraph.rb:2682:in `tone'
> from draw_olr_xt.rb:17:in `<main>'
> といわれました。
>
> "yreverse"=>"positive:down"
> は効きませんでした。
>
> よろしくお願いいたします。
>
>
> --
> Masuo NAKANO, PhD
> Global Cloud-Resolving Modeling Research Team,
> RIGC, JAMSTEC
> 3173-25 Showa-machi, Kanazawa-ku
> Yokohama-city, 236-0001, JAPAN
> TEL: +81-45-778-5616
--
Masuo NAKANO, PhD
Global Cloud-Resolving Modeling Research Team,
RIGC, JAMSTEC
3173-25 Showa-machi, Kanazawa-ku
Yokohama-city, 236-0001, JAPAN
TEL: +81-45-778-5616