首页 > 解决方案 > 在直方图python上拟合广义高斯

问题描述

我有一个数据直方图,我想将广义高斯拟合到这个直方图。

正如我发现的那样,我应该使用scipy.stats.gennorm. 我使用以下代码,但似乎不是根据数据绘制分布,因为它对于不同的直方图是相同的。有任何想法吗?

import matplotlib.pyplot as plt
from scipy.stats import norm
def fit_generalized_gaussian(arr, axes):
        x = np.linspace(min(arr), max(arr), 100)
        axes.plot(x, gennorm.pdf(x, beta=0.45), color='red')

counter = 0
columns = 3
rows = 4
plt.figure(figsize=(100, 50))
fig, ax_array = plt.subplots(rows, columns, squeeze=False)
for i, ax_row in enumerate(ax_array):
    for j, axes in enumerate(ax_row):
        axes.set_ylim([0, 0.05])
        fit_generalized_guassian(N_list[counter].ravel(), axes)
        axes.hist(N_list[counter].ravel(), 21, [-52.5, 52.5], density=True, color='blue')
        counter += 1
        plt.tight_layout()
        plt.show()

N_list是图像列表。
在此处输入图像描述

标签: pythonscipyhistogram

解决方案


推荐阅读