キャンバスを保存したい(TCanvas::SaveAs)
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Canvas", 800, 600);
5TH1D *h = new TH1D("h", "Histogram", 100, 0, 10);
6h->FillRandom("gaus", 1000);
7h->Draw();
8
9// 各形式で保存
10c->SaveAs("output.png"); // PNG形式
11c->SaveAs("output.pdf"); // PDF形式
12c->SaveAs("output.root"); // ROOT形式
13c->SaveAs("output.eps"); // EPS形式
TCanvas::SaveAsメソッドでキャンバスをさまざまな形式で保存できます。
PNG、PDF、ROOT、EPS、SVGなど複数の出力形式に対応しています。
1from ROOT import TCanvas, TH1D
2
3c = TCanvas("c", "Canvas", 800, 600)
4h = TH1D("h", "Histogram", 100, 0, 10)
5h.FillRandom("gaus", 1000)
6h.Draw()
7
8# 各形式で保存
9c.SaveAs("output.png")
10c.SaveAs("output.pdf")
11c.SaveAs("output.root")
メソッドのシグネチャ
1void SaveAs(const char *filename = "", Option_t *option = "")
引数と戻り値
引数:
filename - 出力ファイルパスと名前。ファイル拡張子で形式が判定されます
option - 出力オプション(形式によって異なります)
ファイル形式について
キャンバスを保存できる主な形式:
拡張子 |
形式 |
説明 |
|---|---|---|
|
PNG |
ラスター画像(推奨) |
|
ポータブルドキュメント |
|
|
ROOT形式 |
ROOT ファイル(編集可能) |
|
EPS |
PostScript形式 |
|
SVG |
ベクター画像 |
|
JPEG |
ラスター画像 |
|
GIF |
アニメーション画像 |
|
LaTeX |
LaTeX コード |
使用例
PNG形式で保存したい
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Canvas", 800, 600);
5TH1D *h = new TH1D("h", "Data", 100, 0, 10);
6h->FillRandom("gaus", 1000);
7h->Draw();
8
9// PNG形式で保存
10c->SaveAs("histogram.png");
PNG形式はウェブでの使用やプレゼンテーション資料に適しています。 ファイルサイズは比較的小さく、ほとんどのアプリケーションで開くことができます。
PDF形式で保存したい
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Canvas", 800, 600);
5TH1D *h = new TH1D("h", "Data", 100, 0, 10);
6h->FillRandom("gaus", 1000);
7h->Draw();
8
9// PDF形式で保存
10c->SaveAs("histogram.pdf");
PDF形式は論文やレポートに最適です。 ベクター図形として保存されるため、拡大縮小しても品質が劣化しません。
ROOT形式で保存したい
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Canvas", 800, 600);
5TH1D *h = new TH1D("h", "Data", 100, 0, 10);
6h->FillRandom("gaus", 1000);
7h->Draw();
8
9// ROOT形式で保存(編集可能)
10c->SaveAs("canvas.root");
ROOT形式で保存することで、キャンバス全体をROOTファイルとして保存できます。 後でROOTを使って再度開き、さらに編集することが可能です。
高解像度で保存したい
1#include <TCanvas.h>
2#include <TH1D.h>
3
4TCanvas *c = new TCanvas("c", "Canvas", 1600, 1200);
5TH1D *h = new TH1D("h", "Data", 100, 0, 10);
6h->FillRandom("gaus", 1000);
7h->Draw();
8
9// キャンバスサイズを大きくしてから保存
10c->SaveAs("histogram_high_res.png");
キャンバスのサイズを大きくしてから保存することで、高解像度の画像を得られます。
グラフのサイズを new TCanvas(name, title, width, height) で指定します。
出力オプション
形式によって異なるオプションが使用できます:
1// PNG形式のオプション例
2c->SaveAs("histogram.png", "");
3
4// PDF形式で複数ページ出力
5c->SaveAs("histogram.pdf");
6
7// PostScript形式の詳細オプション
8c->SaveAs("histogram.eps", "");
詳細なオプションはROOT公式ドキュメントを参照してください。