问题描述
KEY: TH1F h_met;1
我正在尝试通过终端命令绘制直方图,并且不想打开Tbrowser,因为它对我来说超级慢。
是否有一个终端命令可以绘制?
我尝试过
TCanvas *c1 = new TCanvas("c1","c1"); c1->Draw("h_met")
但这没用。
解决方法
您应该首先获取直方图,然后再绘制。假设您的文件以f
的形式打开:
TH1F *h1 = (TH1F*)f.Get("h_met");
h1->Draw();
,
假设您使用的是ROOT 6
,并假设您的文件名为f.root
,请这样做
root -l f.root -e "h_met->Draw()"
,
是的,有时随着图形的变化可能会变慢,
我建议使用该选项
-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可以将histogram h1保存为png或其他格式,以便以后使用其他应用程序打开。