def freedman_binning(data, range=None, **kwargs) -> StaticBinning: """Binning schema based on Freedman-Diaconis rule (from astropy). Parameters ---------- data: arraylike range: Optional[tuple] See also -------- astropy.stats.histogram.freedman_bin_width astropy.stats.histogram.histogram """ # TODO: Could we possibly use it with FixedWidthBinning? from astropy.stats.histogram import freedman_bin_width if range is not None: data = data[(data >= range[0]) & (data <= range[1])] _, edges = freedman_bin_width(data, True) return NumpyBinning(edges, **kwargs)