TCanvas編
色見本を見たい
1root> TCanvas c
2root> c.DrawColorTable()
ROOTのプロンプト内で上のように入力すると、簡単に確認できます。
キャンバスを作成したい(TCanvas
)
1TCanvas *c1 = TCanvas("c1", "title", 200, 10, 700, 900);
1import TCanvas from ROOT
2c1 = TCanvas("c1", "title", 200, 10, 700, 900);
キャンバスを分割したい(Divide
)
1c1->Divide(2, 3);
2
3// 5番目のキャンバスに描画する場合
4c1->cd(5);
Divide
でキャンバスを分割できます。
またcd
でサブキャンバスを指定できます。
グラフの軸をログ表示にしたい
1TCanvas *c1;
2c1->SetLogy();
SetLogy
でY軸をログ表示に変更できます。
キャンバスを分割している場合
まず、分割したいキャンバスに移動する
… code:: cpp
c1->cd(2)->SetLogy();
h1->Draw();
gPadは current canvas へのポインタなので、下のようにも書くことができる。
… code:: cpp
c1->cd(2);
gPad->SetLogy();
複数のキャンバスをPDFに保存したい
1// ファイル名を設定する
2TString name;
3name.Form("canvas.pdf");
4
5// キャンバスを作成する
6TCanvas *c1 = new TCanvas(name.Data(), name.Data(), 1000, 500);
7
8// PDFファイルを開く
9c1->Print(name + "[", "pdf");
10
11for (Int_t ihist = 0; ihist < Nhists; ihist++) {
12 // ヒストグラムを描画する
13 hist[ihist]->Draw();
14 // キャンバスをPDFファイルに追加する
15 c1->Print(name, "pdf")
16}
17
18// PDFファイルを閉じる感じ
19c1->Print(name + "]", "pdf");
PDF形式で保存する場合にかぎり、複数のキャンバスを1つのPDFに書き出すことができます。 (やったことないけれどPostScriptでもできるらしいです。PNGはできません。)
ROOT公式ユーザーズガイド “9. Graphics and the Graphical Userinterface : The Postscript Interface” (p139)参照
1// c1->Print(name + "]", "pdf");
2
3c2->Print(name, "pdf")
4c2->Print(name + "]", "pdf")
最後の一文を活用して、別のTCanvasオブジェクトを追加し て保存することもできます。
注釈
括弧( [
と (
)の違いについて
種類 |
説明 |
---|---|
|
この時点ではページを出力しない |
|
この時点でページを出力する(空白のページができる?) |