RubyROOTでDraw()したときに統計情報を表示しない
RubyROOTでヒストグラムをDraw()すると、.rootmacros内でgROOT->SetOptStat(0)していても効かずに、図の右上に統計情報が表示されることがあります。見栄えの問題でこの統計情報を消したい場合は、以下のようにしてください。
1
gStyle.SetOptStat(0)
以下、RubyFitsと同時に用いて、あるFITSファイルの1st extensionに記録されたXとYをhistogramに詰めて、上下に分割したCanvasにプロットする際の例です。以下のような表示になります。
gStyle.SetOptStat(0)をコメントアウトすれば、以下のように統計情報が出ます(というかこちらがデフォルト)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require "RubyFits"
include Fits
require "RubyROOT"
include RootApp
include Root
gStyle.SetOptStat(0)
xHist=TH1D.create("xHist","X Histogram",65535,0,65535);
yHist=TH1D.create("yHist","Y Histogram",65535,0,65535);
fits=FitsFile.open("a_certain_fits_file.fits")
fits[1]["X"].each(){|x|
xHist.Fill(x.to_f)
}
fits[1]["Y"].each(){|y|
yHist.Fill(y.to_f)
}
xHist.Rebin(16)
yHist.Rebin(16)
range=7000
xMin=25000
xMax=xMin+range
yMin=27000
yMax=yMin+range
c=TCanvas.create("c","Canvas",600,600)
c.Divide(1,2)
c.cd(1)
xHist.GetXaxis().SetRangeUser(xMin,xMax)
xHist.Draw()
c.cd(2)
yHist.GetXaxis().SetRangeUser(yMin,yMax)
yHist.Draw()
file=TFile.open("hist.root","recreate")
xHist.Write()
file.Close()
run_app