キャンバスしたい(TCanvas

1TCanvas *c1 = new TCanvas(
2    "c1",         // name
3    "My Canvas",  // title
4    1200,         // ww: default 800
5    800           // wh: default 600
6);

TCanvasはキャンバスを管理するクラスです。 アクティブな描画領域はgPadというグローバルポインターで参照できます。 ヒストグラムやグラフはgPadに描画されます。

第一引数(name)にオブジェクト名、 第二引数(title)にウィンドウのタイトルを指定できます。

キャンバス作成時に、キャンバスのサイズを変更できます。 幅(ww)と高さ(wh)を調整できます。 デフォルトは幅800ピクセル、高さ600ピクセルです。

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

バッチモードしたい(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)

関連メソッド

参考資料