参数“bins”在dataframe.hist()中表示什么?

时间:2018-02-13 23:36:33

标签: python python-3.x pandas matplotlib histogram

我正在从作者写的一本书中学习ML: housing.hist(bins = 50,figsize =(20,15)) plt.show() - 绘制数据的直方图。 在那里,我不明白bin属性的意义和需要以及如何为它确定一个值。

我接着去了pandas文档网站(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.hist.html)但仍然不明白参数“bins”是什么意思。

1 个答案:

答案 0 :(得分:0)

简单回答: bins应该是您想要在直方图中显示的条数。

但是让我们解开链:Pandas hist函数调用matplotlib's hist函数。与pandas相比,matplotlib有一个详细的docstring,

  

bins:整数或序列或'自动',可选

     

如果给出一个整数,则计算并返回bin + 1 bin边缘,与numpy.histogram()一致。

     

如果bin是一个序列,则给出bin边缘,包括第一个bin的左边缘和最后一个bin的右边缘。在这种情况下,箱子不加修改地返回。

     

除了最后一个(最右边)的垃圾箱以外的所有垃圾箱都是半开的。换句话说,如果箱子是:

     

[1, 2, 3, 4]   然后第一个bin是[1, 2)(包括1,但不包括2)和第二个[2, 3)。但是,最后一个bin是[3, 4],其中包含4

     

如果垃圾箱是一个序列,则支持不等间距的垃圾箱。

应该注意,默认情况下,选择最小和最大数据点之间的numpy默认值为10个bin。这意味着数据范围被划分为10个大小相等的区间,并且任何值都分配给这10个区间中的一个,加起来为bin的值。然后,该值将显示为图中相应柱的高度。

bin的值更改为其他数字,可以让您拥有更多或更少的间隔。

另外,查看wikipedia可能有所帮助:

  

没有“最佳”数量的垃圾箱,不同的垃圾箱尺寸可以揭示数据的不同特征。 [...]

     

使用较宽的区域,其中基础数据点的密度较低,降低了由于采样随机性引起的噪声;使用密度较高的较窄的箱(因此信号会淹没噪音)可以提高密度估算的精确度。

在这种情况下,“更宽的箱子”意味着bins的数字越小,“更窄的箱子”的数量越大bins