sns.countplot给柱状图上方加百分比
时间: 2023-10-19 21:19:58 浏览: 86
要在sns.countplot的柱状图上方加上百分比,可以使用matplotlib库的text函数。具体实现步骤如下:
1. 在sns.countplot之后,通过ax对象获取当前的子图。
2. 遍历每个柱子,获取柱子上方的高度height,并计算出百分比。
3. 使用ax.text()函数,在柱子上方添加百分比文本。
下面是一个示例代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 生成示例数据
data = sns.load_dataset('titanic')
# 绘制柱状图
ax = sns.countplot(x='class', data=data)
# 在柱子上方添加百分比文本
for p in ax.patches:
height = p.get_height()
ax.text(p.get_x() + p.get_width() / 2, height + 3, '{:.2f}%'.format(height / len(data) * 100), ha="center")
# 显示图形
plt.show()
```
其中,`ax.patches`是一个包含所有柱子的列表,`p.get_x()`和`p.get_width()`用于获取柱子的位置和宽度,`height / len(data) * 100`用于计算百分比。在`ax.text()`函数中,第一个参数是文本的位置,第二个参数是文本内容,`ha="center"`表示文本居中对齐。
阅读全文