1. ホーム
  2. python

1次元データへの正規分布のあてはめ

2023-08-07 23:18:35

質問

1次元の配列があります。このサンプルの平均と標準偏差を計算し、正規分布をプロットすることができるのですが、問題があります。

データと正規分布を同じ図にプロットしたいのですが、可能でしょうか。

データと正規分布の両方をプロットする方法がわかりません。

scipy.stats"のガウス確率密度関数について何かいいアイデアがありますか?

s = np.std(array)
m = np.mean(array)
plt.plot(norm.pdf(array,m,s))

どのように解決するのですか?

この場合 matplotlib を使ってヒストグラムとPDFをプロットすることができます(@MrEの回答のリンクにあるように)。 フィッティングやPDFの計算には scipy.stats.norm を使用します。

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt


# Generate some data for this demonstration.
data = norm.rvs(10.0, 2.5, size=500)

# Fit a normal distribution to the data:
mu, std = norm.fit(data)

# Plot the histogram.
plt.hist(data, bins=25, density=True, alpha=0.6, color='g')

# Plot the PDF.
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)
title = "Fit results: mu = %.2f,  std = %.2f" % (mu, std)
plt.title(title)

plt.show()

スクリプトが生成したプロットは以下の通りです。