import matplotlib.pyplot as plt
import random
v_max = 500
v_min = 0
myList = [random.randint(v_min, v_max) for i in range(1000)] # 生成样本集
interval = 50
bs = list(range(v_min, v_max + interval, interval )) # 分组区间
plt.figure()
n, bins, patches = plt.hist(myList, bs, density=False) # 各bin的频数,分组取值范围,每个bin中包含的数据list
plt.xlabel('number')
plt.xlim(v_min, v_max)
plt.ylabel('frequency')
plt.title('Histogram')
total = sum(n) # bins的频数之和
freq = list(map(lambda x: x/total, n)) # 计算各bin频率
for i in range(len(n)):
plt.text(bins[i] + (bins[1] - bins[0]) / 2, n[i] * 1.01, '%.2f' %freq[i], ha='center', va='bottom') # 柱上添加数据数据标签
plt.show()
如何在plt.hist()直方图中添加数据标签
最新推荐文章于 2024-09-02 23:29:14 发布