Basic attributes
binedges: Get the bin edges of the histogram, for 1D histogram, it returns just a vector. For others, it returns a tuple of vectors. If you need a tuple of vectors, use h.binedges at your own risk.bincounts: Get the bin counts (weights) of the histogram.sumw2: Get the sum of weights squared of the histogram, it has the same shape asbincounts(h).nentries: Get the number of times a histogram is filled (push!ed)
Derived attributes
bincenters: Get the bin centers of the histogram, for 1D histogram, it returns just a vector. For others, it returns a tuple of vectors.binerrors: Get the error of each bin of the histogram. By default it callssqrt()on each entry ofsumw2as an approximation.mean,std,median,quantile, weighted by histogrambincounts().
FHist.integral — Functionintegral(h; width=false)Get the integral a histogram; width means multiply each bincount by their bin width when calculating the integral.
Manipulating histogram
This section includes adding data to histogram, and other operations that return a histogram (may with reduced dimensionality)
FHist.atomic_push! — Functionpush!(h::Hist1D, val::Real, wgt::Real=1)
atomic_push!(h::Hist1D, val::Real, wgt::Real=1)Adding one value at a time into histogram. sumw2 (sum of weights^2) accumulates wgt^2 with a default weight of 1. atomic_push! is a slower version of push! that is thread-safe.
N.B. To append multiple values at once, use broadcasting via push!.(h, [-3.0, -2.9, -2.8]) or push!.(h, [-3.0, -2.9, -2.8], 2.0)
push!(h::Hist2D, valx::Real, valy::Real, wgt::Real=1)
atomic_push!(h::Hist2D, valx::Real, valy::Real, wgt::Real=1)Adding one value at a time into histogram. sumw2 (sum of weights^2) accumulates wgt^2 with a default weight of 1. atomic_push! is a slower version of push! that is thread-safe.
push!(h::Hist3D, valx::Real, valy::Real, wgt::Real=1)
atomic_push!(h::Hist3D, valx::Real, valy::Real, wgt::Real=1)Adding one value at a time into histogram. sumw2 (sum of weights^2) accumulates wgt^2 with a default weight of 1. atomic_push! is a slower version of push! that is thread-safe.
FHist.cumulative — Functioncumulative(h::Hist1D; forward=true)Create a cumulative histogram. If forward, start summing from the left.
FHist.rebin — Functionrebin(h::Hist1D, n::Int=1)
rebin(n::Int) = h::Hist1D -> rebin(h, n)Merges n consecutive bins into one. The returned histogram will have nbins(h)/n bins.
rebin(h::Hist2D, nx::Int=1, ny::Int=nx)
rebin(nx::Int, ny::Int) = h::Hist2D -> rebin(h, nx, ny)Merges nx (ny) consecutive bins into one along the x (y) axis by summing.
FHist.restrict — Functionrestrict(h::Hist1D, low=-Inf, high=Inf)
restrict(low=-Inf, high=Inf) = h::Hist1D -> restrict(h, low, high)Returns a new histogram with a restricted x-axis. restrict(h, 0, 3) (or h |> restrict(0, 3)) will return a slice of h where the bin centers are in [0, 3] (inclusive).
restrict(h::Hist2D, xlow=-Inf, xhigh=Inf, ylow=-Inf, yhigh=Inf)
restrict(xlow=-Inf, xhigh=Inf, ylow=-Inf, yhigh=Inf) = h::Hist2D -> restrict(h, xlow, xhigh, ylow, yhigh)Returns a new histogram with a restricted x-axis. restrict(h, 0, 3) (or h |> restrict(0, 3)) will return a slice of h where the bin centers are in [0, 3] (inclusive).
FHist.profile — Functionprofile(h::Hist2D, axis::Symbol=:x)
profile(axis::Symbol=:x) = h::Hist2D -> profile(h, axis)Returns the axis-profile of the 2D histogram by calculating the weighted mean over the other axis. profile(h, :x) will return a Hist1D with the y-axis edges of h.
FHist.project — Functionproject(h::Hist2D, axis::Symbol=:x)
project(axis::Symbol=:x) = h::Hist2D -> project(h, axis)Computes the :x (:y) axis projection of the 2D histogram by summing over the y (x) axis. Returns a Hist1D.
project(h::Hist3D, axis::Symbol=:x)
project(axis::Symbol=:x) = h::Hist3D -> project(h, axis)Computes the :x/:y/:z axis projection of the 3D histogram by summing over the specified axis. Returns a Hist2D.