scipy.stats._result_classes.FitResult.

plot#

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

Vergleichen Sie die Daten visuell mit der angepassten Verteilung.

Nur verfügbar, wenn matplotlib installiert ist.

Parameter:
axmatplotlib.axes.Axes

Achsenobjekt, auf das der Plot gezeichnet werden soll, andernfalls werden die aktuellen Achsen verwendet.

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

Art des zu zeichnenden Plots. Optionen umfassen

  • „hist“: Überlagert die PDF/PMF der angepassten Verteilung über einem normalisierten Histogramm der Daten.

  • „qq“: Streudiagramm von theoretischen Quantilen gegen die empirischen Quantile. Genauer gesagt sind die x-Koordinaten die Werte der angepassten Verteilung PPF, ausgewertet an den Perzentilen (np.arange(1, n) - 0.5)/n, wobei n die Anzahl der Datenpunkte ist, und die y-Koordinaten sind die sortierten Datenpunkte.

  • „pp“: Streudiagramm von theoretischen Perzentilen gegen die beobachteten Perzentilen. Genauer gesagt sind die x-Koordinaten die Perzentilen (np.arange(1, n) - 0.5)/n, wobei n die Anzahl der Datenpunkte ist, und die y-Koordinaten sind die Werte der angepassten Verteilung CDF, ausgewertet an den sortierten Datenpunkten.

  • „cdf“: Überlagert die CDF der angepassten Verteilung über der empirischen CDF. Genauer gesagt sind die x-Koordinaten der empirischen CDF die sortierten Datenpunkte, und die y-Koordinaten sind die Perzentilen (np.arange(1, n) - 0.5)/n, wobei n die Anzahl der Datenpunkte ist.

Rückgabe:
axmatplotlib.axes.Axes

Das matplotlib Axes-Objekt, auf dem der Plot gezeichnet wurde.

Beispiele

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

Das matplotlib.axes.Axes-Objekt kann zur Anpassung des Plots verwendet werden. Einzelheiten finden Sie in der Dokumentation zu 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