scipy.stats._result_classes.FitResult.

绘图#

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

直观地比较数据与拟合分布。

仅在安装了 matplotlib 时可用。

参数:
axmatplotlib.axes.Axes

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

plot_type{“直方图”, “QQ图”, “PP图”, “累积分布函数”}

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

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