0

我试图在一个图中绘制分布 pdf 和 cdf。如果一起绘制,则 pdf 和 cdf 不匹配。如果单独绘制,它们将匹配。为什么?您可以从同一个方程看到两条绿色曲线,但显示不同的形状......

 def MBdist(n,loct,scale):
        data = maxwell.rvs(loc=loct, scale=scale, size=n)
        params = maxwell.fit(data, floc=0)
        return data, params



if __name__ == '__main__':
    data,para=MBdist(10000,0,0.5)
    plt.subplot(211)
    plt.hist(data, bins=20, normed=True)
    x = np.linspace(0, 5, 20)
    print x

    plt.plot(x, maxwell.pdf(x, *para),'r',maxwell.cdf(x, *para), 'g')
    plt.subplot(212)
    plt.plot(x, maxwell.cdf(x, *para), 'g')
    plt.show()

来自同一方程的两条绿色曲线,但得到不同的结果。

4

1 回答 1

3

您也不会传入“x”来与第二行一起使用,因此它是针对索引绘制的。它应该是

plt.plot(x, maxwell.pdf(x, *para),'r',x, maxwell.cdf(x, *para), 'g')

这个接口是一个特别神奇的 arg 解析,它是从 MATLAB 中模仿出来的。我会建议

fig, ax = plt.subplots()
ax.plot(x, maxwell.pdf(x, *para),'r')
ax.plot(x, maxwell.cdf(x, *para), 'g')

虽然更冗长的行更清晰。

于 2015-02-22T02:36:51.107 回答