2012-04-13 17 views

उत्तर

100
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

+0

सुधार के लिए धन्यवाद, @platinor। – unutbu

+0

आपके लिन्सस्पेस पैरामीटर वास्तव में अजीब हैं! '' 'X = np.linspace (mu - 4 * सिग्मा, एमयू + 4 * सिग्मा, 100) करने के लिए बेहतर '' ' – Amen

+0

@Amen: हाँ, सुधार के लिए धन्यवाद। – unutbu

29

मैं वहाँ नहीं लगता कि एक समारोह वह सब करता है कि एक ही कॉल में है। हालांकि आप 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)) 

सूत्रों का कहना है:

+2

दिखाने के लिए साजिश प्राप्त करने के लिए '% matplotlib इनलाइन' आपको सूची समझ का उपयोग करने की आवश्यकता नहीं है। 'norm.pdf'' numpy.array' पर काम कर सकता है। तो, आप 'plt.plot (रेंज, norm.pdf (रेंज, 0, 2) लिख सकते हैं) '। – Avaris

+0

@Avaris: यह भयानक है, टिप के लिए धन्यवाद। मेरा जवाब संपादित किया। – lum

+0

आपको शायद 'norm.pdf' को 'norm (0, 1) .pdf' में बदलना चाहिए। यह अन्य मामलों में समायोजित करना आसान बनाता है/यह समझने के लिए कि यह एक यादृच्छिक चर का प्रतिनिधित्व करने वाली वस्तु उत्पन्न करता है। –

5

Unutbu उत्तर सही है। लेकिन क्योंकि हमारे मतलब हो सकता है और अधिक या शून्य से कम मैं अभी भी इस परिवर्तन करना चाहते हैं:

x = np.linspace(-3 * sigma, 3 * sigma, 100) 
इस के लिए

:

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

क्या आपका मतलब -3 * सिग्मा + माध्य, 3 * सिग्मा + मतलब है? – SeF

1

आप विचार कर सकते हैं आप कदम दृष्टिकोण से एक कदम का उपयोग करना पसंद करते हैं एक समाधान जैसे

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() 
संबंधित मुद्दे