【发布时间】:2020-12-09 02:06:05
【问题描述】:
我有一个根目录,当我列出文件时,我可以看到有一个文件
KEY: TH1F h_met;1
我正在尝试通过终端命令绘制此直方图,并且不想打开 TBrowser,因为它对我来说超级慢。
是否有可以绘制这个的终端命令?
我试过了
TCanvas *c1 = new TCanvas("c1","c1"); c1->Draw("h_met")
但这没有用。
【问题讨论】:
标签: root-framework
我有一个根目录,当我列出文件时,我可以看到有一个文件
KEY: TH1F h_met;1
我正在尝试通过终端命令绘制此直方图,并且不想打开 TBrowser,因为它对我来说超级慢。
是否有可以绘制这个的终端命令?
我试过了
TCanvas *c1 = new TCanvas("c1","c1"); c1->Draw("h_met")
但这没有用。
【问题讨论】:
标签: root-framework
是的,有时图形会变慢,
我建议使用该选项
-b 在不带图形的批处理模式下运行 所以,你可以这样做
root -l -q
root [1] TFile f("yourfile.root");
root [2] TH1F *h1 = (TH1F*)f.Get("h_met");
root [3] h1->Draw()
Info in <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
root [4] c1->SaveAs("save_it_for_open_later.png")
在 Draw 中可以看到,TCanvas c1 是默认创建的,而通过 SaveAs,您可以将直方图 h1 保存为 png 或其他格式,以便以后使用其他应用程序打开。
【讨论】:
假设您在 ROOT 6 上并假设您的文件名为 f.root,那么就这样做
root -l f.root -e "h_met->Draw()"
【讨论】:
您应该首先获取直方图,然后绘制它。假设您的文件以f 打开:
TH1F *h1 = (TH1F*)f.Get("h_met");
h1->Draw();
【讨论】: