Могу ли я построить нормальное распределение вероятностей без предварительного построения гистограммы? - PullRequest
0 голосов
/ 22 сентября 2018

Нормальное распределение вероятностей - это график b / wx на оси x и f (x) на оси y.Но когда я рисую это, я получаю перекрывающиеся кривые.Я читал разные ответы на этом сайте, связанные с нормальным распространением.Сначала они строят гистограмму, затем строят график (x, f).Обязательно ли сначала строить гистограмму?Можно ли это сделать без гистограммы?

`mu, sigma = 0, 0.1
x = np.random.normal(mu, sigma, 200)
print(x)

f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )
print(f)
plt.plot(x,f)`

enter image description here

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вам не нужно рисовать образцы для построения нормального распределения.Намного лучше, если вы просто используете равномерно распределенную последовательность чисел.

mu, sigma = 0, 0.1
x = np.linspace(-0.4, 0.4, 100)
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )
plt.plot(x, f)

enter image description here

0 голосов
/ 22 сентября 2018

X-данные просто не сортируются в первую очередь.Чтобы подчеркнуть это, если вы используете только маркеры для построения графика, вы увидите, что перекрытие, которое вы видите, представляет собой артефакт линий, непрерывно соединяющих дискретные точки данных .Здесь ms=2 - это краткая форма записи markersize=2, которая определяет размер маркеров (в данном случае точки, кружки).В ko, k - это код для черного цвета, а o - это символ для использования маркеров.Вы также можете написать 'o', color='black' в качестве альтернативы.-ko означает соединение круговых точек с черной линией.-go, -bo, -ro означают зеленый, синий и красный цвета соответственно.

mu, sigma = 0, 0.1
x = np.random.normal(mu, sigma, 200)
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )

plt.plot(x,f, 'ko', ms = 2)

Выход

enter image description here

Чтобы исправить это, вы можете использовать отсортированный x при вычислении f как и далее при построении графика.

f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (np.sort(x) - mu)**2 / (2 * sigma**2) )
plt.plot(np.sort(x),f, '-ko', ms = 2)

Вывод

enter image description here

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