matplotlib在一个图中的多个情节奇怪发生

时间:2015-02-20 22:44:58

标签: matplotlib scipy distribution cdf

我试图在一个图中绘制分布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()

Both green curves from same equation, but get different results.

1 个答案:

答案 0 :(得分:3)

你也没有传递'x'来与第二行一起使用,因此它正在绘制索引。它应该是

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

这个界面是一个特别神奇的arg-parsing,它是从MATLAB中模仿出来的。我建议

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

虽然比较冗长的直线更清晰。