spacepy.toolbox.dist_to_list¶
- spacepy.toolbox.dist_to_list(func, length, min=None, max=None)[source]¶
Convert a probability distribution function to a list of values
This is a deterministic way to produce a known-length list of values matching a certain probability distribution. It is likely to be a closer match to the distribution function than a random sampling from the distribution.
- Parameters:
- funccallable
- function to call for each possible value, returning
probability density at that value (does not need to be normalized.)
- lengthint
number of elements to return
- minfloat
minimum value to possibly include
- maxfloat
maximum value to possibly include
Examples
>>> import matplotlib >>> import numpy >>> import spacepy.toolbox as tb >>> gauss = lambda x: math.exp(-(x ** 2) / (2 * 5 ** 2)) / (5 * math.sqrt(2 * math.pi)) >>> vals = tb.dist_to_list(gauss, 1000, -numpy.inf, numpy.inf) >>> print vals[0] -16.45263... >>> p1 = matplotlib.pyplot.hist(vals, bins=[i - 10 for i in range(21)], facecolor='green') >>> matplotlib.pyplot.hold(True) >>> x = [i / 100.0 - 10.0 for i in range(2001)] >>> p2 = matplotlib.pyplot.plot(x, [gauss(i) * 1000 for i in x], 'red') >>> matplotlib.pyplot.draw()