【问题标题】:matplotlib histogram bins shifted and individual data labelmatplotlib 直方图箱移位和单个数据标签
【发布时间】:2020-09-09 09:17:47
【问题描述】:

我正在使用 Matplotlib 为以下数据创建直方图:

df['overall'].value_counts(): 
5.0    108602
4.0     39974
3.0     21436
1.0     13269
2.0     11059

我使用了以下代码:

plt.hist(df['overall'])
plt.xlabel('Class')
plt.ylabel('Amount')

我的情节是这样的:

为什么我的 bin 会移位,有没有办法只显示 1.0、2.0、3.0、4.0、5.0 和上面的 bin?其次,我怎样才能得到总量和相对数量的数据标签?

非常感谢你:)

【问题讨论】:

  • matplotlib.org/3.3.1/api/_as_gen/matplotlib.pyplot.hist.html 应该有帮助,例如align 关键字。
  • 您好 Maciek,感谢您的快速回放。 align='mid' 是默认参数,将其更改为 'left' 或 'right',并没有改变任何内容
  • 当您的样本来自离散分布时,您需要设置明确的 bin,尤其是当不同值很少时。所以,plt.hist(...., bins=np.arange(0.5, 6)) 会有些道理。
  • 谢谢 JohanC。现在它看起来像我想要的样子。您能否告诉我如何获取每个 bin 的数据标签?我想显示确切的金额和百分比

标签: python matplotlib


【解决方案1】:

虽然您可以使用直方图,但您必须小心选择的 bin 大小(默认情况下,matplotlib 将创建 10 个等宽的 bin)。

我宁愿认为您想绘制条形图,而不是直方图:

data = df['overall'].value_counts()

fig, ax = plt.subplots()
ax.bar(data.index, data.values)

【讨论】:

  • 您好 Diziet Asahi,谢谢。我试过了,它看起来很有希望。你知道如何为每个 bin 添加数据标签吗?我想知道确切的金额和百分比
猜你喜欢
  • 1970-01-01
  • 2013-04-03
  • 2016-10-14
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
相关资源
最近更新 更多