| name | hist |
| description | Use when working with the scikit-hep hist library in Python to create, fill, slice, and plot histograms (1D/2D/multi-axis), including UHI indexing, categorical axes, and mplhep plotting conventions. |
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.