この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
ja:root:tcanvas [2014/04/03 02:07] kota [Canvas の作成] |
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->Update(); でもよい?) | + | |
| + | 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> | ||
| + | |||
| + | |||