高橋さま > > # 随分前に別のメーリングリストに送った(つもりの)内容ですが, > > # もう一度送ってみます. すみません,記憶にないので,読み飛ばしてたようです。 ごめんなさい。 で,テストプログラムを実行してみました。git 最新だけでなく, gphys-1.4.1 でもやってみましたが,問題なく表示されます (添付)。みなさん使ってるバージョンは何でしょう? (こちらで使った ruby のバージョンは 1.9.3 です。) dcl_takahashi_orig.png: 高橋さんのテストプログラムの実行結果 dcl_vy_auto.png: line の2回目以降の legend_vy 指定を なくした場合。 村上さん,解説ありがとうございました。 自分でもよく覚えてなかったので有り難かったです。 しかし, > !firstが真の場合にはvyは使われない: となってないですね...。 堀之内 > 高橋さま、みなさま、 > > 村上真也です。 > > 解決したわけではないのですが、参考までに、、、 > > numru/dclext.rbの2381行目あたりに以下のような記述があります。 > > # Annotates line/mark type and index (and size if mark). > # By default it is shown in the right margin of the viewport. > # > # * str is a String to show > # * line: true->line ; false->mark > # * vx: vx of the left-hand point of legend line (or mark position). > # * nil : internally determined > # * Float && > 0 : set explicitly > # * Float && < 0 : move it relatively to the left from the default > # * dx: length of the legend line (not used if mark). > # * nil : internally determined > # * Float && > 0 : set explicitly > # * vy: vy of the legend (not used if !first -- see below). > # * nil : internally determined > # * Float && > 0 : set explicitly > # * Float && < 0 : move it relatively lower from the default > # * first : if false, vy is moved lower relatively from the previous vy. > # * mark_size : size of the mark. if nil, size is used. > def legend(str, type, index, line=false, size=nil, > vx=nil, dx=nil, vy=nil, first=true, mark_size=nil) > > legendの引数のfirstにはnewframe(true/false)が入って、 > newframeにはggraph.lineの第二引数が入ります。 > !firstが真の場合にはvyは使われない: > # * vy: vy of the legend (not used if !first -- see below). > とあるのですが、なぜvyが無効になるかと言うと、 > # * first : if false, vy is moved lower relatively from the previous vy. > となっていて、自動的に決まることになっているからです。 > ですが、実際には重なってしまっています。なんでかはわかりませんでした。 > > > 一応work aroundを以下につけます。 > > GGraph.line( gphys1, true , 'exchange'=>true, 'index'=>11, > 'legend'=>'eq.', 'legend_vy'=>0.5-0.05*0 ) > GGraph.line( gphys2, false, 'exchange'=>true, 'index'=>21, > 'legend'=>nil) > GGraph.line( gphys3, false, 'exchange'=>true, 'index'=>31, > 'legend'=>nil ) > GGraph.line( gphys4, false, 'exchange'=>true, 'index'=>41, > 'legend'=>nil ) > DCLExt::legend('30N',1,21,true,nil,nil,nil,0.5-0.05*1,true) > DCLExt::legend('60N',1,31,true,nil,nil,nil,0.5-0.05*2,true) > DCLExt::legend('90N',1,41,true,nil,nil,nil,0.5-0.05*3,true) > > From: "Yoshiyuki O. Takahashi" <yot@xxxxxxxxxxxxxx> > Date: Wed, 21 Jan 2015 14:50:13 +0900 > > > 高橋芳幸です. > > > > # 随分前に別のメーリングリストに送った(つもりの)内容ですが, > > # もう一度送ってみます. > > > > 下の件, どなたかもしわかりましたら教えて頂けると助かります. > > > > 添付した図にあるように, 複数の線を描いた場合に凡例が > > 上手く書けません. > > > > 添付した図には, 赤道, 30N, 60N, 90N の東西平均温度分布 > > を描いていて, GGraph.line の 'legend' でラベルを指定 > > していますが, 二つ目以降の凡例が重なってしまいます. > > 図を描くスクリプトを下につけておきます. また, 下の > > スクリプトでは, 'legend_vy' で凡例の位置を指定していま > > すが, この指定を消しても同じように二つ目以降が重なります. > > 使い方を何か勘違いしているでしょうか? > > > > なお, 使っているデータは, > > http://ruby.gfd-dennou.org/products/gphys/tutorial2/ncep2.Jan.clim.1981-2010.nc > > です. > > > > ---------------------------------------------------------------- > > require "numru/ggraph" > > include NumRu > > > > gphys = GPhys::NetCDF_IO.open('ncep2.Jan.clim.1981-2010.nc', 'air') > > > > gphys1 = gphys.cut('lat'=> 0).mean('lon') > > gphys2 = gphys.cut('lat'=>30).mean('lon') > > gphys3 = gphys.cut('lat'=>60).mean('lon') > > gphys4 = gphys.cut('lat'=>90).mean('lon') > > > > DCL.gropn(2) > > DCL.sgpset('lcntl', false) > > DCL.sgpset('lfull',true) > > DCL.uzfact(0.75) > > DCL.sgpset('lfprop',true) > > GGraph.set_fig('viewport'=>[0.15,0.7,0.2,0.6]) > > > > GGraph.line( gphys1, true , 'exchange'=>true, 'index'=>11, > > 'legend'=>'eq.', 'legend_vy'=>0.5-0.05*0 ) > > GGraph.line( gphys2, false, 'exchange'=>true, 'index'=>21, > > 'legend'=>'30N', 'legend_vy'=>0.5-0.05*1 ) > > GGraph.line( gphys3, false, 'exchange'=>true, 'index'=>31, > > 'legend'=>'60N', 'legend_vy'=>0.5-0.05*2 ) > > GGraph.line( gphys4, false, 'exchange'=>true, 'index'=>41, > > 'legend'=>'90N', 'legend_vy'=>0.5-0.05*3 ) > > > > DCL.grcls > > > ---- > Shin-ya Murakami > email: murashin@xxxxxxxxxxxxxx > WWW: http://www.gfd-dennou.org/member/murashin/ 堀之内 武 北海道大学 地球環境科学研究院 地球圏科学部門 〒060-0810 札幌市北区北10条西5丁目
Attachment:
dcl_takahashi_orig.png
Description: PNG image
Attachment:
dcl_vy_auto.png
Description: PNG image