看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)给定某电商平台2023年月度销售数据,要求使用pandas的plot()方法绘制各季度销售额占比饼图。源数据如下:
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data = {
'月份': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
'销售额': [120, 85, 150, 130, 180, 200, 220, 250, 280, 300, 450, 380]
}
df = pd.DataFrame(data)
df.set_index('月份', inplace=True)
print(df)
输出结果:
销售额
月份
1月 120
2月 85
3月 150
4月 130
5月 180
6月 200
7月 220
8月 250
9月 280
10月 300
11月 450
12月 380
具体要求:
代码如下:
# 创建画布
plt.figure(figsize=(10, 8))
# 按季度聚合数据
quarter_data = pd.Series({
'Q1': df.loc[['1月', '2月', '3月'], '销售额'].sum(),
'Q2': df.loc[['4月', '5月', '6月'], '销售额'].sum(),
'Q3': df.loc[['7月', '8月', '9月'], '销售额'].sum(),
'Q4': df.loc[['10月', '11月', '12月'], '销售额'].sum()
})
# 绘制饼图
quarter_data.plot(kind='pie', autopct='%1.1f%%',
title='各季度销售额占比',
startangle=90, # 从90度开始,使Q1在顶部
colors=['#ff9999', '#66b3ff', '#99ff99', '#ffcc99'])
# 设置Y轴标签为空(饼图不需要Y轴标签)
plt.ylabel('')
# 添加图例
plt.legend(title='季度', loc='center left', bbox_to_anchor=(1, 0.5))
# 显示图形
plt.tight_layout()
plt.show()
输出结果:
生成一个饼图,显示:
参考代码使用pandas plot()方法实现数据聚合和饼图绘制:
关键技巧:饼图适合展示部分与整体的关系,通过数据预处理将月度数据聚合为季度数据,可以更清晰地观察季度间的销售分布情况。autopct参数自动计算并显示百分比,大大简化了代码。
(完)
更新时间:2025-09-21 10:13:06 标签:pandas python 饼图