gpt4 book ai didi

python - 如何使用每个离散值的条形图创建条形图/直方图?

转载 作者:太空狗 更新时间:2023-10-29 22:26:52 26 4
gpt4 key购买 nike

我正在尝试创建一个直方图,以显示离散星级 (1-5) 中每个值的评分数量。每个值应该有一个条形,在 x 轴上,唯一要显示的数字是每个条形下方(居中)的 [1,2,3,4,5]。

我尝试将 bin 的数量设置为 5 或将它们的范围设置为 0-7,但这会创建跨越值的条形(如提供的图像所示)

enter image description here

这是我试过的代码(pandas 和 numpy):

df.stars.hist()

hist, bins = np.histogram(x1, bins=5)
ax.bar(bins[:-1], hist.astype(np.float32) / hist.sum(), width=(bins[1]-bins[0]), color="blue")

最佳答案

您可以使用plot(kind='bar') 方法:

stars = Series(randint(1, 6, size=100))
vc = stars.value_counts().sort_index()
ax = vc.plot(kind='bar')
fig = ax.get_figure()
fig.autofmt_xdate()

得到:

enter image description here

编辑 #1: 要将它们显示为比例,只需除以 sum

vc /= float(vc.sum())
assert vc.sum() == 1

得到:

enter image description here

编辑#2:将它们显示为百分比除以上述总和,并使用格式规范迷你语言来格式化 y 轴刻度标签

new_labels = ['{0:.0%}'.format(float(x.get_text())) for x in ax.get_yticklabels()]
ax.set_yticklabels(new_labels)

得到:

enter image description here

关于python - 如何使用每个离散值的条形图创建条形图/直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18393887/

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