sns.countplot中使用hue属性,请为每个柱子加百分比
时间: 2024-04-29 15:21:26 浏览: 134
可以使用Seaborn库中的sns.countplot()方法结合matplotlib库中的annotate()方法实现为每个柱子加上百分比的效果。
以下是示例代码:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据,这里使用Seaborn自带的titanic数据集作为示例
titanic = sns.load_dataset('titanic')
# 绘制图表
ax = sns.countplot(x='class', hue='survived', data=titanic)
# 计算每个类别的总数
total = float(len(titanic))
# 循环遍历每个柱子
for p in ax.patches:
# 获取每个柱子中的数量
height = p.get_height()
# 计算百分比并格式化为字符串
percentage = '{:.1f}%'.format((height/total)*100)
# 在每个柱子上添加百分比标签
ax.annotate(percentage, (p.get_x()+0.15, height+5))
# 显示图表
plt.show()
```
运行以上代码,将会得到一个带有百分比标签的柱状图。其中,循环遍历每个柱子,计算出百分比并使用annotate()方法在每个柱子上添加标签。需要注意的是,标签的位置、字体大小、颜色等可以根据个人喜好进行自定义。
阅读全文