キャンバスしたい(TCanvas)
1#include <TCanvas.h>
2#include <TH1D.h>
3#include <TRandom.h>
4
5TCanvas *c = new TCanvas("c1", "My Canvas", 800, 600);
6
7TH1D *h = new TH1D("h", "Gaussian;x;Entries", 100, -3, 3);
8for (int i = 0; i < 10000; i++) h->Fill(gRandom->Gaus(0, 1));
9h->Draw();
10
11c->SaveAs("output.png");
TCanvasはROOTの描画領域を提供するクラスです。
ヒストグラムやグラフはTCanvas上に描画されます。
1from ROOT import TCanvas, TH1D, TRandom3
2
3c = TCanvas("c1", "My Canvas", 800, 600)
4
5h = TH1D("h", "Gaussian;x;Entries", 100, -3, 3)
6rng = TRandom3()
7for i in range(10000):
8 h.Fill(rng.Gaus(0, 1))
9h.Draw()
10
11c.SaveAs("output.png")
キャンバスのサイズを変えたい
1#include <TCanvas.h>
2
3// TCanvas(name, title, width, height)
4TCanvas *c = new TCanvas("c1", "My Canvas", 1200, 800);
引数はそれぞれ、識別名・タイトル・幅(ピクセル)・高さ(ピクセル)です。 引数なしで作成した場合はデフォルトサイズになります。
名前を変えたい(TCanvas::SetName)
1#include <TCanvas.h>
2
3TCanvas *c = new TCanvas("c1", "My Canvas", 800, 600);
4c->SetName("new_name");
SetNameでキャンバスの識別名を変更できます。
識別名はROOTファイルに保存するときのキーになります。
1from ROOT import TCanvas
2
3c = TCanvas("c1", "My Canvas", 800, 600)
4c.SetName("new_name")
タイトルを変えたい(TCanvas::SetTitle)
1#include <TCanvas.h>
2
3TCanvas *c = new TCanvas("c1", "My Canvas", 800, 600);
4c->SetTitle("New Title");
5c->Update();
SetTitleでウィンドウのタイトルバーに表示される文字列を変更できます。
変更後にUpdateを呼ぶと即座に反映されます。
1from ROOT import TCanvas
2
3c = TCanvas("c1", "My Canvas", 800, 600)
4c.SetTitle("New Title")
5c.Update()
バッチモードしたい(gROOT::SetBatch)
1#include <TCanvas.h>
2#include <TH1D.h>
3#include <TROOT.h>
4
5gROOT->SetBatch(true); // ウィンドウを表示しない
6
7TCanvas *c = new TCanvas("c1", "My Canvas", 800, 600);
8// ... 描画処理 ...
9c->SaveAs("output.png");
マクロやスクリプトでファイルに書き出すだけの場合は、
gROOT->SetBatch(true)でウィンドウ表示を抑制できます。
1from ROOT import TCanvas, gROOT
2
3gROOT.SetBatch(True)
4
5c = TCanvas("c1", "My Canvas", 800, 600)
関連メソッド
TCanvas::Divide - キャンバスを分割する
TH1::Draw - ヒストグラムを描画する
TCanvas::SaveAs - ファイルに保存する
TCanvas::Update - キャンバスを更新する
TLegend - 凡例を追加する