通过plt.hist()的累积分布函数

时间:2018-12-14 17:28:31

标签: python matplotlib distribution

我有数据,我想绘制经验累积分布函数。我从matplotlib official site中获取了一段代码。他们使用直方图绘制阶跃函数。

data = np.array([5, 8, 5, 9, 10, 15, 7, 12, 19, 21, 7, 10, 11,
    13, 18, 20, 20, 14, 15, 15, 21, 3, 8, 13, 14, 14, 15,
    14, 17, 24, 22, 28, 24, 22, 25, 16, 21, 24, 18, 20])

hist_cum, bin_edges, patches = plt.hist(data, bins='sturges', density=True,
                                         histtype='step',cumulative=True)

输出:histogram

问题是:数据中有一个'28'。公式说F(x)= P {X

我不知道如何解决。

1 个答案:

答案 0 :(得分:1)

几件事。首先,我认为您对CDF的理解是不稳定的。对于所有X>最大值(您的数据),对于经验分布,CDF曲线均为1.0。对?从该分布的随机样本X小于特定点x到图的高边的概率为1.0。

也就是说,我认为您想要做的是控制绘图的轴限制。在渲染图之前,尝试修改这些命令:

plt.xlim(0, 28)
plt.xticks(np.arange(0,30,2))