2016-12-24 743 views
1

我想在Python3中用scipy來截斷正態分佈。我希望做一些簡單的:情節截斷正以0.5爲中心,範圍從0到1,我有以下的代碼行在python中用scipy截斷正態分佈

from scipy import truncnorm 
import matplotlib.pyplot as plt 
plt.plot([truncnorm.pdf(p,0,1, loc=0.5) for p in np.arange(0,1.1,0.1)]) 

不過的PDF格式,這並沒有給漂亮的鐘形概率分佈我期望的功能。相反,它在0.5之前等於0,我不明白爲什麼。對此有何建議?

回答

3

下面是根據truncnorm的文件所遵循的程序。

# user input 
myclip_a = 0 
myclip_b = 1 
my_mean = 0.5 
my_std = 0.3 

a, b = (myclip_a - my_mean)/my_std, (myclip_b - my_mean)/my_std 
x_range = np.linspace(-1,2,1000) 
plt.plot(x_range, truncnorm.pdf(x_range, a, b, loc = my_mean, scale = my_std)) 

enter image description here