使用matplotlib的hist
函数,如何让它显示条形图上每个bin的计数?
例如,
import matplotlib.pyplot as plt
data = [ ... ] # some data
plt.hist(data, bins=10)
我们怎样才能在每个bin中显示计数?
答案 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
结果如下: