キャンバスを保存したい(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

PNG

ラスター画像(推奨)

.pdf

PDF

ポータブルドキュメント

.root

ROOT形式

ROOT ファイル(編集可能)

.eps

EPS

PostScript形式

.svg

SVG

ベクター画像

.jpg

JPEG

ラスター画像

.gif

GIF

アニメーション画像

.tex

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公式ドキュメントを参照してください。

関連メソッド

参考資料