如何注释水平Seaborn计数图?

时间:2018-05-05 14:16:51

标签: python-3.x plot seaborn

如何操作注释的位置以便它们显示在条形的末尾?

这是我到目前为止所做的:https://i.imgur.com/5NEzoVY.png

而且,这是代码:

fig = plt.figure(1, figsize=(15,10))
ax = sns.countplot(y="carrier", hue='Delay_Level', data=Subset_Data)
plt.xlabel('count', fontsize=15, weight = 'bold', labelpad=10)
plt.ylabel('ABC', fontsize=15, weight = 'bold', labelpad=10)

for p in ax.patches:
    x=p.get_bbox().get_points()[:,1]
    y=p.get_bbox().get_points()[1,0]
    ax.annotate(y,(p.get_height()+2,p.get_y()+0.15))

如果有人能帮助我,我将不胜感激。我是初学者。我查看了文档但找不到帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

更新:

我找到了解决方案:

for p in ax.patches:
    ax.annotate(int(p.get_width()),((p.get_x() + p.get_width()), p.get_y()), xytext=(1, -18),fontsize=9,color='#004d00',textcoords='offset points', horizontalalignment='right')

我没有使用边界框的点,而是使用get_width来获取矩形的宽度。 “textcoords”帮助将注释放在各自的栏旁边;它表示xytext中使用的坐标类型。将“horizo​​ntalalignment”设置为“right”会使它们朝向条形的末端。还在“fontsize”和“color”中添加了注释。