Copyright | (c) 2011 Bryan O'Sullivan |
---|---|
License | BSD3 |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Functions for computing histograms of sample data.
Documentation
:: (Vector v0 Double, Vector v1 Double, Num b, Vector v1 b) | |
=> Int | Number of bins (must be positive). |
-> v0 Double | Sample data (cannot be empty). |
-> (v1 Double, v1 b) |
O(n) Compute a histogram over a data set.
The result consists of a pair of vectors:
- The lower bound of each interval.
- The number of samples within the interval.
Interval (bin) sizes are uniform, and the upper and lower bounds
are chosen automatically using the range
function. To specify
these parameters directly, use the histogram_
function.
Building blocks
:: (Num b, RealFrac a, Vector v0 a, Vector v1 b) | |
=> Int | Number of bins. This value must be positive. A zero or negative value will cause an error. |
-> a | Lower bound on interval range. Sample data less than this will cause an error. |
-> a | Upper bound on interval range. This value must not be less than the lower bound. Sample data that falls above the upper bound will cause an error. |
-> v0 a | Sample data. |
-> v1 b |
O(n) Compute a histogram over a data set.
Interval (bin) sizes are uniform, based on the supplied upper and lower bounds.
:: Vector v Double | |
=> Int | Number of bins (must be positive). |
-> v Double | Sample data (cannot be empty). |
-> (Double, Double) |
O(n) Compute decent defaults for the lower and upper bounds of a histogram, based on the desired number of bins and the range of the sample data.
The upper and lower bounds used are (lo-d, hi+d)
, where
d = (maximum sample - minimum sample) / ((bins - 1) * 2)
If all elements in the sample are the same and equal to x
range
is set to (x - |x|10, x + |x|10)
. And if x
is equal to 0 range
is set to (-1,1)
. This is needed to avoid creating histogram with
zero bin size.