如何调整Matplotlib直方图中的宾格大小(附实例)

720 阅读2分钟

你可以使用以下方法之一来调整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) 

matplotlib histogram with specific number of bins

请记住,你指定的分选区越多,分选区就越窄。

例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中绘制时间序列图