scipy.stats._result_classes.FitResult.

plot#

FitResult.plot(ax=None, *, plot_type='hist')[source]#

将数据与拟合分布进行视觉比较。

仅当安装了 matplotlib 时可用。

参数::
axmatplotlib.axes.Axes

要绘制图形的 Axes 对象,否则使用当前 Axes。

plot_type{“hist”, “qq”, “pp”, “cdf”}

要绘制的图形类型。选项包括

  • “hist”: 将拟合分布的 PDF/PMF 叠加在数据的归一化直方图上。

  • “qq”: 理论分位数与经验分位数的散点图。具体来说,x 坐标是拟合分布 PPF 在百分位数 (np.arange(1, n) - 0.5)/n 处的值,其中 n 是数据点的数量,y 坐标是排序后的数据点。

  • “pp”: 理论百分位数与观察百分位数的散点图。具体来说,x 坐标是百分位数 (np.arange(1, n) - 0.5)/n,其中 n 是数据点的数量,y 坐标是拟合分布 CDF 在排序后的数据点处的值。

  • “cdf”: 将拟合分布的 CDF 叠加在经验 CDF 上。具体来说,经验 CDF 的 x 坐标是排序后的数据点,y 坐标是百分位数 (np.arange(1, n) - 0.5)/n,其中 n 是数据点的数量。

返回值::
axmatplotlib.axes.Axes

绘制图形的 matplotlib Axes 对象。

示例

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

可以使用 matplotlib.axes.Axes 对象自定义图形。有关详细信息,请参阅 matplotlib.axes.Axes 文档。

>>> ax.set_xlabel('number of trials')  # customize axis label
>>> ax.get_children()[0].set_linewidth(5)  # customize line widths
>>> ax.legend()
>>> plt.show()
../../_images/scipy-stats-_result_classes-FitResult-plot-1.png