【发布时间】:2017-06-28 19:03:03
【问题描述】:
我已经为在板球锦标赛中裁判最多比赛次数的裁判绘制了一个计数图。 使用的代码是:
ax=matches['umpires'].value_counts().head(10).plot.bar(width=.8)
这会正确绘制条形图,但计数的确切值不会显示在每个条形的顶部。
如何在每条柱上显示准确的数字?
【问题讨论】:
标签: python pandas matplotlib seaborn
我已经为在板球锦标赛中裁判最多比赛次数的裁判绘制了一个计数图。 使用的代码是:
ax=matches['umpires'].value_counts().head(10).plot.bar(width=.8)
这会正确绘制条形图,但计数的确切值不会显示在每个条形的顶部。
如何在每条柱上显示准确的数字?
【问题讨论】:
标签: python pandas matplotlib seaborn
我认为您需要循环 iterrows 并添加新标签:
np.random.seed(100)
L = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
matches = pd.DataFrame(np.random.choice(L, size=(30,1)), columns=['umpires'])
#print (matches)
s = matches['umpires'].value_counts().head(10)
print (s)
C 5
Q 3
E 2
P 2
V 2
Y 2
H 1
D 1
M 1
J 1
Name: umpires, dtype: int64
ax=s.plot.bar(width=.8)
for i, v in s.reset_index().iterrows():
ax.text(i, v.umpires + 0.2 , v.umpires, color='red')
【讨论】:
v.umpires + 0.2 对我不起作用,该值直接位于顶部。配置i 的值会向左或向右移动数字,但运气不好。知道为什么吗?
matplotlib: 2.0.0 和 pandas: 0.22.0 测试它并且运行良好。
s 的内容,我还会得到一个看起来像您的列表。不知道出了什么问题,尤其是因为配置 i 有效