Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:root:tcanvas [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:root:tcanvas

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:root:tcanvas [2014/04/03 02:03]
kota [ディスプレイのサイズを知る]
ja:root:tcanvas [2014/05/23 06:18] (現在)
kota [Canvas の作成]
ライン 1: ライン 1:
-====== ​TCanvas ​======+====== ​キャンバスの設定・装飾 ​======
  
  
ライン 5: ライン 5:
  
 ===== Canvas の作成 ===== ===== Canvas の作成 =====
-  * TCanvas の宣言+  * Canvas を作成(TCanvas ​クラスインスタンスを作成)
 <code c_mac> <code c_mac>
 TCanvas *c = new TCanvas("​c","​c",​600,​500);//​TCanvas(const char* name, const char* title, Int_t ww, Int_t wh) TCanvas *c = new TCanvas("​c","​c",​600,​500);//​TCanvas(const char* name, const char* title, Int_t ww, Int_t wh)
ライン 11: ライン 11:
   * サイズはピクセル単位   * サイズはピクセル単位
   * ただしこれはメニューやウインドウの枠を含んだ大きさである。実際の図自体の大きさはこれよりも小さくなってしまっている。   * ただしこれはメニューやウインドウの枠を含んだ大きさである。実際の図自体の大きさはこれよりも小さくなってしまっている。
-  * 描画部分の大きさを指定したい場合は、以下のようにする+  ​* menue bar で24pixel , 周囲の枠で2pixel とられている。  
 + * 描画部分の大きさを指定したい場合は、以下のようにする
 <code c_mac> <code c_mac>
 Int_t w = 600; Int_t w = 600;
ライン 17: ライン 18:
 TCanvas * c1 = new TCanvas("​c",​ "​c",​ w, h); TCanvas * c1 = new TCanvas("​c",​ "​c",​ w, h);
 c->​SetWindowSize(w + (w - c->​GetWw()),​ h + (h - c->​GetWh()));​ c->​SetWindowSize(w + (w - c->​GetWw()),​ h + (h - c->​GetWh()));​
-gSystem->ProcessEvents();//​サイズ変更を反映+ 
 +c->Modified(); 
 +c->​Update();  ​//​サイズ変更を反映
 </​code>​ </​code>​
   * バッチモード(ディスプレイに表示させない、後で c->​SaveAs("​c.png"​) とかする)では、単に   * バッチモード(ディスプレイに表示させない、後で c->​SaveAs("​c.png"​) とかする)では、単に
ライン 24: ライン 27:
 </​code>​ </​code>​
 とすればよい(試してないのであってるかどうか知らん) とすればよい(試してないのであってるかどうか知らん)
 +
 +{{:​ja:​root:​window_canvas.png?​800|}}
 +
 +
 +  * canvas(青枠)の左下がNDCの原点(0,​0),​右上が(1,​1)となっている。
 +  * histogramの枠はデフォルトでNDCで0.1ずつマージンが設けられている。(以下で確認可)
 +<code c_mac>
 +  gStyle->​GetPadTopMargin()
 +  gStyle->​GetPadBottomMargin()
 +  gStyle->​GetPadRightMargin()
 +  gStyle->​GetPadLeftMargin()
 +</​code>​
 +  * histogramの枠のマージンは以下のようにして変更可能
 +<code c_mac>
 +  gStyle->​SetPadTopMargin(0.01)//​全体を一括して変更
 +  gPad->​SetBottomMargin(0.2) ​  //​それぞれのpadで変更
 +</​code>​
 +
 +  * 上手く使えば統計boxなどをヒストグラムの枠の外に出せる。
 +
 ---- ----
 ===== Canvas の分割 ===== ===== Canvas の分割 =====
ライン 29: ライン 52:
 <code c_mac> <code c_mac>
 TCanvas *c=new TCanvas("​c","​c",​800,​400);​ TCanvas *c=new TCanvas("​c","​c",​800,​400);​
-c0->​Divide(2,​1);​ +c->​Divide(2,​1);​ 
-c0->cd(1);+c->cd(1);
  
 // 1番のcanvasをさらに分割 // 1番のcanvasをさらに分割
ライン 48: ライン 71:
   * ちなみにMBA 13インチで幅1440、高さ878だった   * ちなみにMBA 13インチで幅1440、高さ878だった
   * 外部ディスプレイ(23インチ)を付けた状態では、1080,​3360と表示された。(足されてる?)   * 外部ディスプレイ(23インチ)を付けた状態では、1080,​3360と表示された。(足されてる?)
 +
 +
 +----
 +
 +===== 要素 =====
 +  * むしろ軸の範疇
 +
 +
 +----
 +
 +===== gPad =====
 +
 +  * 今いるキャンバス(c->​cd(1)した先とか)を指す
 +
 +<code c_mac>
 +  gPad->​SetRightMargin(0.08) ;
 +  gPad->​SetLeftMargin(0.08) ;
 +  gPad->​SetTopMargin(0.02) ;
 +  gPad->​SetBottomMargin(0.02) ;
 +  ​
 +  gPad->​SetGridx(1) ;
 +  gPad->​SetGridy(1) ;
 +</​code>​
 +
 +
ja/root/tcanvas.1396490637.txt.gz · 最終更新: 2014/04/03 02:03 by kota