如何解释pyplot直方图箱?

时间:2013-03-02 17:16:18

标签: matplotlib histogram

我对matplotlib hist函数感到困惑。

文档说明:

  

如果是一系列值,则使用二进制数的下限值。

但是当我在序列中有两个值,即[0,1]时,我只得到1个bin。 当我有三个这样的时候:

plt.hist(votes, bins=[0,1,2], normed=True)

我只有两个箱子。我的猜测是最后一个值只是最后一个bin的上限。

有没有办法在最后一个bin中拥有“剩下的”值,除了那个非常大的值? (换句话说,没有让那个箱子比其他箱子大得多)

似乎最后一个bin值包含在最后一个bin

votes = [0,0,1,2]
plt.hist(votes, bins=[0,1])

这给了我一个高度为3的箱子,即0,0,1。 虽然:

votes = [0,0,1,2]
plt.hist(votes, bins=[0,1,2])

给我两个箱子,每箱两个。 我觉得这个反作用是直观的,添加一个新的bin会改变其他bin的宽度限制。

votes = [0,0,1]
plit.hist[votes, bins=2) 

yeilds两个大小为2和1的区域。由于x轴从0变为1,这些区域似乎已经被分割为0,5。

如何解释bin数组?数据如何分割?

1 个答案:

答案 0 :(得分:15)

votes = [0, 0, 1, 2]
plt.hist(votes, bins=[0,1])

这给你一个高度为3的bin,因为它将数据分成一个单独的bin,间隔为:[0,1]。它将值放入该bin:0,0和1。

votes = [0, 0, 1, 2]
plt.hist(votes, bins=[0, 1, 2])

这给你一个带有间隔的区间的直方图:[0,1 [和[1,2]; 所以第1个箱子里有2个物品(0和0),第2个箱子里有2个物品(1和2)。

如果您尝试绘图:

plt.hist(votes, bins=[0, 1, 2, 3])

数据分割成垃圾箱背后的想法是一样的: 你会得到三个间隔: [0,1 [; [1,2 [; [2,3],你会注意到值2改变它的bin,以区间[2,3]进入bin [而不是像上一个例子一样留在bin [1,2]中)。

总之,如果你在bin参数中有一个有序数组,如: [i_0,i_1,i_2,i_3,i_4,...,i_n] 这将创建箱子:
[i_0,i_1 [
[i_1,i_2 [
[i_2,i_3 [
[i_3,i_4 [
...
[i_(n-1),i_n]

根据括号打开或关闭每个边界。