import matplotlib.pyplot as plt
其中data指的是数据(在参数中对应x),hist_group(在参数中对应bins)中每两个数字代表一个分组,例如 [0.20) 是一组,然后输出这一组中有多少数据。依次类推。
data = [1,1,1,10,11,20,50,70,100,120]
hist_group = [0,20,40,60,80,100,120]
plt.hist(data,hist_group, rwidth=0.8) #rwidth 是指这个线条占这个分组宽度的比例,默认为1,为1时就是占满整个分组区域。显然比例越小,线条越细
plt.show()
如果bins只是两个数字的序列,那么直方图只会输出这一个分组下的数据个数。
plt.hist(data,bins=(10,20),rwidth=0.8)
(array([3.]), array([10, 20]), <a list of 1 Patch objects>)
如果bins是一个数字,那么就会将数据的(最大值-最小值)/bins,得出每个分组应有的宽度。
plt.hist(data,bins = 5, rwidth=0.8)
#(120-1)/5 = 23.8
#所以分组为[1,1+23.8),[24.8,24.8+23.8)......
(array([6., 0., 2., 0., 2.]),
array([ 1. , 24.8, 48.6, 72.4, 96.2, 120. ]),
<a list of 5 Patch objects>)
hist函数的返回值是一个tuple元素,如下图所示,第一个数组返回的是每个bin有多少个元素,另外一个数组返回的是这个bin的最左边的值(每个bin都有一个范围,最左边的值即这个范围的最小值)