matplotlib直方图:如何在条形图上显示计数?

时间:2016-10-03 23:02:10

标签: python matplotlib

使用matplotlib的hist函数,如何让它显示条形图上每个bin的计数?

例如,

import matplotlib.pyplot as plt
data = [ ... ] # some data
plt.hist(data, bins=10)

我们怎样才能在每个bin中显示计数?

2 个答案:

答案 0 :(得分:8)

似乎hist无法做到这一点,你可以写一些像:

your_bins=20
data=[]
arr=plt.hist(data,bins=your_bins)
for i in range(your_bins):
    plt.text(arr[1][i],arr[0][i],str(arr[0][i]))

答案 1 :(得分:4)

不是仅使用 plt.hist() 而是具有一些附加功能的解决方案。

如果您不想事先指定您的 bin 并且只绘制密度条,但又想显示 bin 计数,您可以使用以下方法。

import numpy as np
import matplotlib.pyplot as plt

data = np.random.randn(100)
density, bins, _ = plt.hist(data, density=True, bins=20)
count, _ = np.histogram(data, bins)
for x,y,num in zip(bins, density, count):
    if num != 0:
        plt.text(x, y+0.05, num, fontsize=10, rotation=-90) # x,y,str

结果如下:

enter image description here