Seaborn:Python的计数图上的值有问题

时间:2019-12-24 12:39:17

标签: python pandas seaborn

我有这样的DataFrame:

df = pd.DataFrame({"Gender":["Male", "Male", "Female", "Male", "Female", "Female"],
                   "children":["0", "1", "0", "0", "1", "1"]})

我将这个DataFrame呈现在这样的海洋计数图上:  ax=sns.countplot(x="Gender", hue="children", data=df, palette="binary")

我尝试使用以下代码在计数图的每一列上显示值:

for p in ax.patches:
    ax.annotate(f'\n{p.get_height()}', (p.get_x()+0.2, p.get_height()), ha='center', va='top', color='white', size=18)
plt.show()

但是我有错误:

AttributeError: 'Text' object has no attribute 'patches'

我该怎么做才能在绘图的每一列上都有值?请不要将我的链接发送给其他所有我检查过的答案,我需要简单的答案。请修改我的代码或告诉我出现错误的原因是什么? enter image description here

1 个答案:

答案 0 :(得分:0)

问题是.set_title返回文本,而不是matplotlib子图。

您应该这样做

ax=sns.countplot(x="Gender", hue="children", data=df, palette="binary")
ax.set_title(<insert your title here>)

在单独的行上