# spacepy.toolbox.dist_to_list

spacepy.toolbox.dist_to_list(func, length, min=None, max=None)

  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
    func callable
      function to call for each possible value, returning

        probability density at that value (does not need to be normalized.)

    length int

      number of elements to return

    min float

      minimum value to possibly include

    max float

      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()