你可以使用以下方法之一来调整Matplotlib中直方图的bin大小:
方法1:指定bin的数量
plt.hist(data, bins=6)
方法2:指定bin的边界
plt.hist(data, bins=[0, 4, 8, 12, 16, 20])
方法3:指定bin宽度
w=2
plt.hist(data, bins=np.arange(min(data), max(data) + w, w))
下面的例子展示了如何在实践中使用这些方法中的每一个:
例子1:指定分选区的数量
下面的代码显示了如何指定直方图中使用的bin的数量:
import matplotlib.pyplot as plt
#define data
data = [1, 2, 2, 4, 5, 5, 6, 8, 9, 12, 14, 15, 15, 15, 16, 17, 19]
#create histogram with specific number of bins
plt.hist(data, edgecolor='black', bins=6)

请记住,你指定的分选区越多,分选区就越窄。
例2: 指定斌的边界
下面的代码显示了如何在直方图中指定实际的bin边界:
import matplotlib.pyplot as plt
#define data
data = [1, 2, 2, 4, 5, 5, 6, 8, 9, 12, 14, 15, 15, 15, 16, 17, 19]
#create histogram with specific bin boundaries
plt.hist(data, edgecolor='black', bins=[0, 4, 8, 12, 16, 20])

在这个例子中,我们指定每个bin的宽度是一样的,但是你可以指定边界,使每个bin有不同的大小。
例3:指定bin宽度
下面的代码显示了如何指定直方图中的bin宽度:
import matplotlib.pyplot as plt
import numpy as np
#define data
data = [1, 2, 2, 4, 5, 5, 6, 8, 9, 12, 14, 15, 15, 15, 16, 17, 19]
#specify bin width to use
w=2
#create histogram with specified bin width
plt.hist(data, edgecolor='black', bins=np.arange(min(data), max(data) + w, w))

请记住,你指定的bin宽度越小,bins就越窄。
其他资源
下面的教程解释了如何在Matplotlib中执行其他常用功能:
如何在Matplotlib中增加图的大小
如何在Matplotlib中创建密度图
如何在Matplotlib中绘制时间序列图