【问题标题】:How to draw a TH1F in the terminal without opening TBrowser in ROOT?如何在终端中绘制一个 TH1F 而不在 ROOT 中打开 TBrowser?
【发布时间】:2020-12-09 02:06:05
【问题描述】:

我有一个根目录,当我列出文件时,我可以看到有一个文件

KEY: TH1F  h_met;1

我正在尝试通过终端命令绘制此直方图,并且不想打开 TBrowser,因为它对我来说超级慢。

是否有可以绘制这个的终端命令?

我试过了

TCanvas *c1 = new TCanvas("c1","c1"); c1->Draw("h_met")

但这没有用。

【问题讨论】:

    标签: root-framework


    【解决方案1】:

    是的,有时图形会变慢,

    我建议使用该选项

    -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 或其他格式,以便以后使用其他应用程序打开。

    【讨论】:

      【解决方案2】:

      假设您在 ROOT 6 上并假设您的文件名为 f.root,那么就这样做

      root -l f.root -e "h_met->Draw()"
      

      【讨论】:

        【解决方案3】:

        您应该首先获取直方图,然后绘制它。假设您的文件以f 打开:

        TH1F *h1 = (TH1F*)f.Get("h_met");
        h1->Draw();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-18
          • 1970-01-01
          • 1970-01-01
          • 2016-09-14
          • 2014-12-02
          • 2017-09-10
          相关资源
          最近更新 更多