Examples -------- >>> import numpy as np >>> from scipy.stats import levy >>> import matplotlib.pyplot as plt >>> fig, ax = plt.subplots(1, 1) Calculate the first four moments: >>> mean, var, skew, kurt = levy.stats(moments='mvsk') Display the probability density function (``pdf``): >>> # `levy` is very heavy-tailed. >>> # To show a nice plot, let's cut off the upper 40 percent. >>> a, b = levy.ppf(0), levy.ppf(0.6) >>> x = np.linspace(a, b, 100) >>> ax.plot(x, levy.pdf(x), ... 'r-', lw=5, alpha=0.6, label='levy pdf') Alternatively, the distribution object can be called (as a function) to fix the shape, location and scale parameters. This returns a "frozen" RV object holding the given parameters fixed. Freeze the distribution and display the frozen ``pdf``: >>> rv = levy() >>> ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf') Check accuracy of ``cdf`` and ``ppf``: >>> vals = levy.ppf([0.001, 0.5, 0.999]) >>> np.allclose([0.001, 0.5, 0.999], levy.cdf(vals)) True Generate random numbers: >>> r = levy.rvs(size=1000) And compare the histogram: >>> # manual binning to ignore the tail >>> bins = np.concatenate((np.linspace(a, b, 20), [np.max(r)])) >>> ax.hist(r, bins=bins, density=True, histtype='stepfilled', alpha=0.2) >>> ax.set_xlim([x[0], x[-1]]) >>> ax.legend(loc='best', frameon=False) >>> plt.show() c