Hist
Overview
Use this skill to build and manipulate hist.Hist objects, choose axis/storage types, fill with data and weights, and produce publication-style plots with mplhep styles, all based on matplotlib.
Quick start
- •Create histograms with
Hist.newplus axis builders (Reg,Var,StrCat) and finish with exactly one storage (Int64orWeight). - •Make sure axis labels contain a short variable name and units. Histogram titles should contains a slightly longer concise description of what data went into the plot.
- •Fill with
.fill(...)using axis names; note that.fillreturnsNone. - •Slice or project with UHI indexing (e.g.,
h.project("x")orh[{"x": 5j}]). - •Plot with
hist.plot(...)ormplhep.hist2dplot(...); useplt.style.use(hep.style.ATLAS)for HEP-style plots.
Core tasks
Create axes and storage
- •Use
Regfor uniform bins andVarfor variable-width bins. - •Use
StrCatfor categorical axes; setgrowth=Truefor auto-added categories. - •Choose storage:
Int64for unweighted counts,Weightfor weighted fills.
Fill and access contents
- •Fill with named axes (e.g.,
h.fill(x=..., y=..., weight=...)). - •Read counts with
h.view()and errors fromnp.sqrt(h.variances()).
Slice, rebin, and project
- •Use UHI slicing (complex numbers for bin selection,
::2jfor rebinning). - •Project with
h.project("axis_name")for 1D plots.
Plot and save
- •Use
hist.plot(histtype="fill")for 1D; usemplhep.hist2dplotfor 2D. - •Use
plt.subplots()without customfigsizeunless explicitly requested. - •Save with
fig.savefig("name.png")and close withplt.close(fig).
References
- •Use
references/hist-hints.mdfor concrete code snippets and common patterns. - •Use
references/hist-advanced.mdfor UHI indexing, plotting gotchas, and label/LaTeX guidance. - •Use
references/lhc-hist-ranges.mdfor starting suggestions on histogram axis ranges and binning.