Python pylab plot нормальное распределение - программирование
Подтвердить что ты не робот

Python pylab plot нормальное распределение

Учитывая среднее и дисперсию, существует простой вызов функции pylab, который будет строить нормальное распределение?

Или мне нужно сделать это самостоятельно?

4b9b3361

Ответ 1

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math

mu = 0
variance = 1
sigma = math.sqrt(variance)
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
plt.plot(x,mlab.normpdf(x, mu, sigma))
plt.show()

gass distro, mean is 0 variance 1

Ответ 2

Я не думаю, что есть функция, которая делает все это в одном вызове. Однако вы можете найти функцию плотности гауссова вероятности в scipy.stats.

Таким образом, самый простой способ:

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

# Plot between -10 and 10 with .001 steps.
x_axis = np.arange(-10, 10, 0.001)
# Mean = 0, SD = 2.
plt.plot(x_axis, norm.pdf(x_axis,0,2))

Источники:

Ответ 3

Ответ Unutbu правильный. Но поскольку наше среднее значение может быть больше или меньше нуля, я все равно хотел бы изменить это:

x = np.linspace(-3,3,100)

:

x = np.linspace(-3+mean,3+mean,100)

Ответ 4

Если вы предпочитаете использовать пошаговый подход, вы можете рассмотреть решение, подобное следующим

import numpy as np
import matplotlib.pyplot as plt

mean = 0; std = 1; variance = np.square(std)
x = np.arange(-5,5,.01)
f = np.exp(-np.square(x-mean)/2*variance)/(np.sqrt(2*np.pi*variance))

plt.plot(x,f)
plt.ylabel('gaussian distribution')
plt.show()