use*_*251 1 python distribution scipy
β分布通常在区间x = [0,1]中指定.但是也可以指定不同的x边界(见下图).我如何改进下面的python代码来重现这个数字?

我的尝试(未完成!):
from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a = 2
b = 2
x = np.arange (0.01, 1, 0.01)
y = beta.pdf(x,a,b)
plt.plot(x,y)
Run Code Online (Sandbox Code Playgroud)
你可以修改loc和scalebeta功能.
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)
Run Code Online (Sandbox Code Playgroud)
我不确定 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--")
Run Code Online (Sandbox Code Playgroud)
此代码提供以下图形输出:

这与您正在寻找的一样吗?
顺便说一下,我使用linspace()而不是你的arange()因为它通过插值返回给定数量的间隔,在使用浮点时总是有用的。innp.arange (0.01, 1.00001, 0.01)比 in多一个元素np.arange (0.01, 1, 0.01)。