我有数据,我想绘制经验累积分布函数。我从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 我不知道如何解决。
答案 0 :(得分:1)
几件事。首先,我认为您对CDF的理解是不稳定的。对于所有X>最大值(您的数据),对于经验分布,CDF曲线均为1.0。对?从该分布的随机样本X小于特定点x到图的高边的概率为1.0。
也就是说,我认为您想要做的是控制绘图的轴限制。在渲染图之前,尝试修改这些命令:
plt.xlim(0, 28)
plt.xticks(np.arange(0,30,2))