正規分布の密度関数を描く

まずは Matplotlib と NumPy だけで描いてみましょう。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 101)  # 区間[-3,3]を100等分する101点
y = np.exp(-x**2 / 2) / np.sqrt(2 * np.pi)
plt.plot(x, y)
正規分布の密度関数

x ≧ 1 の部分だけ塗りつぶしてみましょう。

plt.fill_between(x[x >= 1], y[x >= 1])

計算式を書くのが面倒なら,SciPy の scipy.stats.norm.pdf() を使います。この pdf は PDF ファイルのことではなく確率密度関数(probability density function)のことです。

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

x = np.linspace(-3, 3, 101)  # 区間[-3,3]を100等分する101点
plt.plot(x, norm.pdf(x))

ちなみに R なら

curve(dnorm(x), -3, 3)

という1行で描けてしまいます。

他の統計関数については scipy.stats を,特に正規分布については scipy.stats.norm を参照してください。

R と同程度の統計計算をしたいなら StatsModels というライブラリが便利そうです。


Last modified: