我有这样的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'
我该怎么做才能在绘图的每一列上都有值?请不要将我的链接发送给其他所有我检查过的答案,我需要简单的答案。请修改我的代码或告诉我出现错误的原因是什么?
答案 0 :(得分:0)
问题是.set_title
返回文本,而不是matplotlib子图。
您应该这样做
ax=sns.countplot(x="Gender", hue="children", data=df, palette="binary")
ax.set_title(<insert your title here>)
在单独的行上