具有多个NaN的Pyplot hist()导致不正确的分箱

时间:2014-01-07 17:47:24

标签: python matplotlib histogram

我正在为可能包含多个NaN值的大型数据集创建直方图。但是,我发现当我不从数据中删除NaN时,数据被错误地分箱。如果我运行以下代码:

nan_list = [1, 1, 2, np.nan, 2, 3, 3]
h = plt.hist(nan_list, bins=range(5))
print h

我得到以下直方图:

(array([0, 2, 1, 0]), array([0, 1, 2, 3, 4]), <a list of 4 Patch objects>)

现在,这似乎是合理的,因为它只是在第一个NaN之后跳过了所有内容。但是,如果我将另一个NaN添加到列表中,那么它将变为:

[1, 1, 2, np.nan, 2, 3, np.nan, 3]

我得到以下结果:

(array([0, 2, 3, 1]), array([0, 1, 2, 3, 4]), <a list of 4 Patch objects>)

在这种情况下,它会在[2,3] bin中放置三个项目,即使我在该范围内只有两个值。它也只在[3,4]范围内放置一个值。这个奇怪的分箱可能是什么原因?

顺便说一句,我知道我可以从数据中删除NaN以获得正确的直方图。我只是想知道为什么会发生这种奇怪的行为。

0 个答案:

没有答案