Python SciPy累积分布函数绘图
我在绘制累积分布函数时遇到问题 到目前为止,我发现:Python SciPy累积分布函数绘图,python,cdf,Python,Cdf,我在绘制累积分布函数时遇到问题 到目前为止,我发现: scipy.stats.beta.cdf(0.2,6,7) 但这只给了我一点 这将是我用来绘制的: pylab.plot() pylab.show() 我希望它看起来像这样: 当p=.2且边界停止一次y=1或接近1时,cdf的第一个参数可以是一个值数组,而不是单个值。然后它将返回一个值数组 import scipy.stats as stats import matplotlib.pyplot as plt import numpy a
scipy.stats.beta.cdf(0.2,6,7)
但这只给了我一点
这将是我用来绘制的:
pylab.plot()
pylab.show()
我希望它看起来像这样:
当
p=.2
且边界停止一次y=1
或接近1时,cdf
的第一个参数可以是一个值数组,而不是单个值。然后它将返回一个值数组
import scipy.stats as stats
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,20,100)
cdf = stats.binom.cdf
plt.plot(x,cdf(x, 50, 0.2))
plt.show()
我认为上面的用户ubuntu没有建议使用正确的函数。 事实上,他的答案是非常误导和不正确的 请注意,
binom.cdf()
是一个函数,用于计算由n和p指定的二项分布的cdf,二项(n,p)
。也就是说,它为x中的每个值返回该随机变量的cdf值,而不是向量x指定的离散分布的实际cdf函数
要计算由向量x定义的任何分布的cdf,只需使用histogram()
函数:
import numpy as np
hist, bin_edges = np.histogram(np.random.randint(0,10,100), normed=True)
cdf = cumsum(hist)
或者,只需使用matplotlib中的
hist()
plotting函数。这正是我想要的!非常感谢你!我花了大约3个小时的时间来做这样的事情。但我仍然很难从概念上理解这一点。对于stat.beta.cdf,这个linspace(0,20100)是什么?我只是使用了错误的代码吗?我看到您使用了stats.binom.cdf(0,20100)创建了一个numpy数组,其中包含100个均匀分布的值,这些值介于0和20之间(包括0和20)。(请尝试打印(np.linspace(0,20,10))。实验是值得的!)因为您发布了一个指向二项式cdf图的链接,我使用了而不是。我仍然对stats.binom.cdf(x,50,0.2)的工作原理感到困惑。。。我知道x可以是一个数组,我知道p=0.2,但为什么是50?我已经使用了这些数字,并阅读了手册,但仍然没有意义……在上,您将看到一个使用binom.cdf(x,n,p)
的示例。x
可以是任何类似数组的对象n
是投掷次数,p
是成功概率。通过查看并与此匹配,可以理解参数的含义。同意您的评论。你的解是有效的,另一个只适用于二项分布