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) ;