我正在使用 PyROOT 尝试遍历文件夹中的文件,获取所有文件中存在的特定直方图(最小测试中的两个)并在同一个画布中绘制所有直方图。我仅使用两个直方图运行的最小示例如下。
import ROOT
import os
inputDir = "inputExample/"
outputDir = "outputExample/"
c1 = ROOT.TCanvas('c1', 'c1')
for filename in os.listdir(inputDir):
inputFile = ROOT.TFile.Open(inputDir+filename)
hist = inputFile.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
if filename == "first.root":
hist.Draw("")
else:
hist.Draw("SAME")
c1.SaveAs(outputDir+"Superimposed.png")
我不明白为什么只保存第二个直方图。这是另一个最小的示例,我希望它是等效的并且可以正常工作(我在同一个画布上绘制了两个直方图)。
import ROOT
inputDir = "inputExample/"
outputDir = "outputExample/"
c1 = ROOT.TCanvas('c1', 'c1')
inputFile1 = ROOT.TFile.Open(inputDir+"first.root")
hist = inputFile1.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
hist.Draw("")
inputFile2 = ROOT.TFile.Open(inputDir+"second.root")
hist = inputFile2.Get("variables/Method_BDT/BDT/MVA_BDT_trainingRejBvsS")
hist.Draw("SAME")
c1.SaveAs(outputDir+"Superimposed.png")