python在饼图上标上数据
时间: 2023-08-11 09:42:34 浏览: 94
你可以在绘制饼图的时候,使用 `autopct` 参数来标注数据。`autopct` 参数是一个格式化字符串,它可以用来控制如何显示每个扇形的比例值。
以下是一个示例代码,它可以读取一个csv文件中的数据,绘制一个饼图,并在饼图上标注每个扇形的比例值和数值:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取 csv 文件
data = pd.read_csv('data.csv')
# 统计年龄总数
age_counts = data['age'].value_counts()
# 划分年龄阶段
age_bins = [0, 18, 30, 50, 100]
age_labels = ['0-18', '18-30', '30-50', '50+']
age_groups = pd.cut(data['age'], bins=age_bins, labels=age_labels)
# 统计各个年龄阶段的年龄总数
group_counts = age_groups.value_counts()
# 绘制饼图并标注数据
fig, ax = plt.subplots()
ax.pie(group_counts, labels=age_labels, autopct='%1.1f%%')
ax.set_title('Age Distribution')
# 标注数据
for i, count in enumerate(group_counts):
percentage = '{:.1f}%'.format(100 * count / sum(group_counts))
value = '({})'.format(count)
ax.text(i, 0, '{}\n{}'.format(percentage, value),
ha='center', va='center', fontweight='bold')
plt.show()
```
在以上代码中,`autopct='%1.1f%%'` 表示使用百分数格式来标注每个扇形的比例值,`ax.text()` 函数用来在每个扇形中心位置标注数值和百分数。
希望这个示例代码能够帮助你解决问题。
阅读全文