Ваше среднее значение равно 0
, и поскольку нормальное распределение симметрично c относительно среднего, ваш график будет go по оси -ve. Поэтому сдвиньте среднее значение к положительному и начните значения x
с 0
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
plt.figure(figsize=(8,4))
x = np.linspace(0,40,1000)
plt.plot(x,stats.norm.pdf(x, 20,5),'r')
plt.plot(x,stats.norm.pdf(x,20,10),'b')
plt.title("Flattening the curve")
plt.savefig("graph.png")
plt.show()
Ось y
- это значения pdf так что
- Площадь под кривой == 1
- значение pdf неотрицательно
Чтобы получить целые числа, вы можете масштабировать все значения pdf на несколько постоянный коэффициент (скажем, 100), но график потеряет цель, если вы не упомянули явно используемое значение масштабирования. Вы должны проверить, почему вы хотите целые числа на оси у. Для масштабирования оси Y вы можете использовать
plt.plot(x,stats.norm.pdf(x, 20,5)*100,'r')