plot — SciPy v1.15.3 Manual (original) (raw)
scipy.stats._result_classes.FitResult.
FitResult.plot(ax=None, *, plot_type='hist')[source]#
Visually compare the data against the fitted distribution.
Available only if matplotlib is installed.
Parameters:
Axes object to draw the plot onto, otherwise uses the current Axes.
plot_type{“hist”, “qq”, “pp”, “cdf”}
Type of plot to draw. Options include:
- “hist”: Superposes the PDF/PMF of the fitted distribution over a normalized histogram of the data.
- “qq”: Scatter plot of theoretical quantiles against the empirical quantiles. Specifically, the x-coordinates are the values of the fitted distribution PPF evaluated at the percentiles
(np.arange(1, n) - 0.5)/n
, wheren
is the number of data points, and the y-coordinates are the sorted data points. - “pp”: Scatter plot of theoretical percentiles against the observed percentiles. Specifically, the x-coordinates are the percentiles
(np.arange(1, n) - 0.5)/n
, wheren
is the number of data points, and the y-coordinates are the values of the fitted distribution CDF evaluated at the sorted data points. - “cdf”: Superposes the CDF of the fitted distribution over the empirical CDF. Specifically, the x-coordinates of the empirical CDF are the sorted data points, and the y-coordinates are the percentiles
(np.arange(1, n) - 0.5)/n
, wheren
is the number of data points.
Returns:
The matplotlib Axes object on which the plot was drawn.
Examples
import numpy as np from scipy import stats import matplotlib.pyplot as plt # matplotlib must be installed rng = np.random.default_rng() data = stats.nbinom(5, 0.5).rvs(size=1000, random_state=rng) bounds = [(0, 30), (0, 1)] res = stats.fit(stats.nbinom, data, bounds) ax = res.plot() # save matplotlib Axes object
The matplotlib.axes.Axes object can be used to customize the plot. See matplotlib.axes.Axes documentation for details.
ax.set_xlabel('number of trials') # customize axis label ax.get_children()[0].set_linewidth(5) # customize line widths ax.legend() plt.show()