箱子绘制直方图的作用是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了箱子绘制直方图的作用是什么?相关的知识,希望对你有一定的参考价值。

我想绘制直方图。当我用bins=80auto绘制它时,我的代码正常工作。但是当我尝试用bins=100绘制它时。它不能给我这个错误:

"{!r} is not a valid estimator for `bins`".format(bin_name))
ValueError: '100' is not a valid estimator for `bins`

这是我的代码:

import matplotlib.pyplot as plt
x= [81.70900202536467, 81.69066539803865, 81.9634647036723, 81.6886583191991, 81.70063595809025, 81.71279936786232, 81.6846428541525]
plt.hist(x,bins='100')
plt.hist(x)
plt.show()

带直方图的箱子有什么作用?如何为我的数据选择合适的箱值?

答案

Bins是数据将聚合计数的组数。例如,如果您有数字1,1,2,3,5,6,6,并且您想要3个分箱,则在直方图中会得到三列(绑定):

Column 1: [1,1,2] <=2 (value 3)
Column 2: 2<[3]<=3 (value 1)
Column 3: 3<[5,6,6]<=6 (value 3)

当您在bins参数中使用字符串时,该函数需要以下值之一:'auto','sturges','fd','doane','scott','rice','sturges'或'sqrt'。如果你想要100个垃圾箱,你应该提供一个int。

您可以参考Wikipedia了解有关直方图箱或matplotlib docs的更多信息,以了解直方图功能。

另一答案

设置bins=100,其中值是整数,而不是您拥有的字符串。这些垃圾箱是您的数据将被分类到多少组。在您的示例中,您只有7个元素,因此将这些元素分组为100个区域是没有意义的。但如果这只是你的数据片段那么你应该好好去!

import matplotlib.pyplot as plt

x= [81.70900202536467, 81.69066539803865, 81.9634647036723, 81.6886583191991, 81.70063595809025, 81.71279936786232, 81.6846428541525]
plt.hist(x, bins=100)  # was bins='100' which is a string
plt.hist(x)
plt.show()

以上是关于箱子绘制直方图的作用是什么?的主要内容,如果未能解决你的问题,请参考以下文章

R语言画图练习

绘制由 vImage 计算的直方图

R语言入门:直方图histogram的绘制

opencv——图像直方图与反向投影

Python可视化之绘制边缘直方图(图文并茂版!!)

详解什么叫二维直方图,并利用OpenCV的函数calcHist()绘制图像的H-S二维直方图