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
====== キャンバスの設定・装飾 ======
----
===== 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);
とすればよい(試してないのであってるかどうか知らん)
{{:ja:root:window_canvas.png?800|}}
* 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) ;