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

キャンバスの設定・装飾


Canvas の作成

  • Canvas を作成(TCanvas クラスのインスタンスを作成)
TCanvas *c = new TCanvas("c","c",600,500);//TCanvas(const char* name, const char* title, Int_t ww, Int_t wh)
  • サイズはピクセル単位
  • ただしこれはメニューやウインドウの枠を含んだ大きさである。実際の図自体の大きさはこれよりも小さくなってしまっている。
  • menue bar で24pixel , 周囲の枠で2pixel とられている。

* 描画部分の大きさを指定したい場合は、以下のようにする

Int_t w = 600;
Int_t h = 600;
TCanvas * c1 = new TCanvas("c", "c", w, h);
c->SetWindowSize(w + (w - c->GetWw()), h + (h - c->GetWh()));
 
c->Modified();
c->Update();  //サイズ変更を反映
  • バッチモード(ディスプレイに表示させない、後で c→SaveAs(“c.png”) とかする)では、単に
c->SetCanvasSize(w,h);

とすればよい(試してないのであってるかどうか知らん)

  • canvas(青枠)の左下がNDCの原点(0,0),右上が(1,1)となっている。
  • histogramの枠はデフォルトでNDCで0.1ずつマージンが設けられている。(以下で確認可)
  gStyle->GetPadTopMargin()
  gStyle->GetPadBottomMargin()
  gStyle->GetPadRightMargin()
  gStyle->GetPadLeftMargin()
  • histogramの枠のマージンは以下のようにして変更可能
  gStyle->SetPadTopMargin(0.01)//全体を一括して変更
  gPad->SetBottomMargin(0.2)   //それぞれのpadで変更
  • 上手く使えば統計boxなどをヒストグラムの枠の外に出せる。

Canvas の分割

  • Canvasをまず横に2つに分割し、さらにその左半分を上下に2つに分割する。
TCanvas *c=new TCanvas("c","c",800,400);
c->Divide(2,1);
c->cd(1);
 
// 1番のcanvasをさらに分割
 
TCanvas *c1=c0->cd(1);
c1->Divide(1,2);

ディスプレイのサイズを知る

  • TCanvasのサイズを決めるのに有用か
gClient->GetDisplayHeight()
gClient->GetDisplayWidth()
  • ちなみにMBA 13インチで幅1440、高さ878だった
  • 外部ディスプレイ(23インチ)を付けた状態では、1080,3360と表示された。(足されてる?)

要素

  • むしろ軸の範疇

gPad

  • 今いるキャンバス(c→cd(1)した先とか)を指す
  gPad->SetRightMargin(0.08) ;
  gPad->SetLeftMargin(0.08) ;
  gPad->SetTopMargin(0.02) ;
  gPad->SetBottomMargin(0.02) ;
 
  gPad->SetGridx(1) ;
  gPad->SetGridy(1) ;
ja/root/tcanvas.txt · 最終更新: 2014/05/23 06:18 by kota