Scipy和beta分布:是否可以改变x值的范围?

时间:2015-06-01 15:31:12

标签: python scipy distribution

β分布通常在区间x = [0,1]中指定。但是也可以指定不同的x边界(见下图)。如何改进下面的python代码来重现图?

enter image description here

我的尝试(未完成!):

SELECT '''||NAME||'''
FROM 
(SELECT REPLACE(joe,rose,chandler, ',' ,''',''') AS NAME
FROM TABLE.

2 个答案:

答案 0 :(得分:7)

您可以修改测试版功能的locscale

from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a = 2
b = 2
x = np.arange (-50, 50, 0.1)
y = beta.pdf(x,a,b, scale=100, loc=-50)
plt.plot(x,y)

答案 1 :(得分:3)

我不确定alpha参数应代表什么。

我通过改变参数来获得产生三种不同形状的功能,但它对我来说并没有多大意义。如果您不太了解数学但不知道如何在同一个图上生成多行,这里有一些代码至少可以做到这一点。

from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a =  2
b = 2
x = np.linspace(0, 1.0, 100)
y1 = beta.pdf(x, 2.75, 2.75)
y2 = beta.pdf(x, 3.25, 3.25)
y3 = beta.pdf(x, 3, 3)
plt.plot(x, y1, "-", x, y2, "r--", x, y3, "g--")

此代码提供以下图形输出:

Out

这是你想要的吗?

顺便说一下,我使用了linspace()而不是arange(),因为它通过插值返回给定数量的间隔,在使用浮点时总是有用。 np.arange (0.01, 1.00001, 0.01)中的元素多于np.arange (0.01, 1, 0.01)中的元素。