绘制截断正态分布

时间:2019-08-13 20:12:49

标签: python numpy matplotlib scipy

我试图绘制一个平均值为0.5且标准分布为1.0的{​​{3}}。分布被截断为仅在间隔(0,1)中。

x = np.linspace(0,1,100)
dist=truncnorm(a=0,b=1,loc=0.5, scale = 1.0)
plt.plot(x, dist.pdf(x), 'k-', lw=2, label='normalised truncated Gaussian')

但是我却得到了它:

truncated Gaussian distribution (using scipy)

x=0.5之后的所有内容似乎都很正常,但在此之下,您会突然下降到零。但是,分布只能在(0,1)之外为零。发生了什么,我该如何解决?

1 个答案:

答案 0 :(得分:2)

您正在告诉它使用loc进行绘制,以移动绘制。

dist=truncnorm(a=0,b=1,loc=0.5, scale = 1.0)应该是 dist=truncnorm(a=0,b=1, scale = 1.0)获取标准图。

从truncnorm()上的source code

  

对于均匀分布的MLE,位置是最小的           数据,小数位数是最大值减去最小值。 (第6570行)