我试图在一个图中绘制分布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()
答案 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')
虽然比较冗长的直线更清晰。