yahist

1D and 2D histogram objects

Downloads
218
Stars
10
Committers
1

Yet another histogram

pip install yahist

Examples (API docs)

(static nbviewer if Binder is slow)

Overview

Histogram objects (1D and 2D) with easy manipulations (numpy), plotting (matplotlib), and fitting (scipy/iminuit).

import numpy as np
from yahist import Hist1D

v = np.random.normal(0, 1, 1000)
h = Hist1D(v, bins=100, label="data").rebin(2).normalize()
h.plot(errors=True, ms=3)
h.fit("peak * np.exp(-(x-mu)**2 / (2*sigma**2))")
import pandas as pd

df = pd.DataFrame(np.random.normal(0, 1, size=(10000, 2)), columns=["A", "B"])

h = Hist2D(df, bins="30,-3,3", threads=4)
h.plot(logz=True, cmap="cividis")
h.profile("x").plot(errors=True, color="C1", marker=".", label="x-profile")

Much more functionality is showcased in the example notebook, including

  • fitting (chi2 or likelihood)
  • interactive plots (via bokeh)
  • datetime inputs/axes
  • rebinning/subsetting
  • profiling/projecting 2D histograms
  • acceleration of 1D/2D histogram creation with boost-histogram
  • using the histogram as a lookup function
  • serialization to/from json

...and more.

Package Rankings
Top 17.87% on Pypi.org
Badges
Extracted from project README
PyPI Documentation Status Binder Binder
Related Projects