How to plot normal distribution
Become part of the top 3% of the developers by applying to Toptal https://topt.al/25cXVn
--
Music by Eric Matyas
https://www.soundimage.org
Track title: Peaceful Mind
--
Chapters
00:00 Question
00:20 Accepted answer (Score 310)
00:43 Answer 2 (Score 64)
01:20 Answer 3 (Score 23)
01:43 Answer 4 (Score 16)
02:03 Thank you
--
Full question
https://stackoverflow.com/questions/1013...
Answer 1 links:
http://www.johndcook.com/distributions_s...
http://docs.scipy.org/doc/scipy/referenc...
http://telliott99.blogspot.com/2010/02/p...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #matplotlib
#avk47
--
Music by Eric Matyas
https://www.soundimage.org
Track title: Peaceful Mind
--
Chapters
00:00 Question
00:20 Accepted answer (Score 310)
00:43 Answer 2 (Score 64)
01:20 Answer 3 (Score 23)
01:43 Answer 4 (Score 16)
02:03 Thank you
--
Full question
https://stackoverflow.com/questions/1013...
Answer 1 links:
http://www.johndcook.com/distributions_s...
http://docs.scipy.org/doc/scipy/referenc...
http://telliott99.blogspot.com/2010/02/p...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #matplotlib
#avk47
ACCEPTED ANSWER
Score 327
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
import math
mu = 0
variance = 1
sigma = math.sqrt(variance)
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
plt.plot(x, stats.norm.pdf(x, mu, sigma))
plt.show()

ANSWER 2
Score 67
I don't think there is a function that does all that in a single call. However you can find the Gaussian probability density function in scipy.stats.
So the simplest way I could come up with is:
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))
plt.show()
Sources:
ANSWER 3
Score 18
If you prefer to use a step by step approach you could consider a solution like follows
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()
ANSWER 4
Score 13
Unutbu answer is correct. But because our mean can be more or less than zero I would still like to change this :
x = np.linspace(-3 * sigma, 3 * sigma, 100)
to this :
x = np.linspace(-3 * sigma + mean, 3 * sigma + mean, 100)