gpt4 book ai didi

python - 如何在 matplotlib "histogram"图表上添加(或注释)值标签(或频率)

转载 作者:行者123 更新时间:2023-12-05 01:35:11 27 4
gpt4 key购买 nike

我想将频率标签添加到使用 plt.hist 生成的直方图中。

这是数据:

np.random.seed(30)
d = np.random.randint(1, 101, size = 25)
print(sorted(d))

我在 stackoverflow 上查找了其他问题,例如: Adding value labels on a matplotlib bar chart和他们的答案,但显然,plt.plot(kind='bar') 返回的对象与 plt.hist 返回的对象不同,我在使用“get_height”或“get width”函数时遇到错误,因为在条形图的一些答案中提出了建议。

同样,无法通过查看直方图上的 matplotlib 文档找到解决方案。得到这个错误

最佳答案

我是这样处理的。如果有人有一些建议来改进我的答案,(特别是 for 循环和使用 n=0、n=n+1,我认为必须有更好的方法来编写 for 循环而不必以这种方式使用 n),我会欢迎它。

# import base packages
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# generate data
np.random.seed(30)
d = np.random.randint(1, 101, size = 25)
print(sorted(d))

enter image description here

# generate histogram

# a histogram returns 3 objects : n (i.e. frequncies), bins, patches
freq, bins, patches = plt.hist(d, edgecolor='white', label='d', bins=range(1,101,10))

# x coordinate for labels
bin_centers = np.diff(bins)*0.5 + bins[:-1]

n = 0
for fr, x, patch in zip(freq, bin_centers, patches):
height = int(freq[n])
plt.annotate("{}".format(height),
xy = (x, height), # top left corner of the histogram bar
xytext = (0,0.2), # offsetting label position above its bar
textcoords = "offset points", # Offset (in points) from the *xy* value
ha = 'center', va = 'bottom'
)
n = n+1

plt.legend()
plt.show;

enter image description here

关于python - 如何在 matplotlib "histogram"图表上添加(或注释)值标签(或频率),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63200484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com