Python 利用pandas和matplotlib绘制饼图
这段代码使用了Pandas和Matplotlib库来绘制店铺销售数量占比的饼图。通过读取Excel文件中的数据,对店铺名称进行聚合并按销售数量降序排列,然后使用Matplotlib绘制饼图展示销售数量占比情况。
导入必要的库
import pandas as pd import matplotlib.pyplot as plt
在这个步骤中,我们导入了两个必要的库:pandas
用于数据处理,matplotlib.pyplot
用于绘图。
设置中文字体
plt.rcParams['font.family'] = ['SimHei']
这段代码指定中文字体为黑体,以支持中文字符集。
读取数据
data = pd.read_excel('C:\\Users\Admin\\Desktop\\数据核对\\新建 XLSX 工作表.xlsx')
这段代码从指定路径的Excel文件中读取数据,并将数据存储在data
变量中。
聚合数据
aggregated_data = data.groupby('店铺名称')['销售数量'].sum()
这段代码根据店铺名称对销售数量进行聚合,并将结果存储在aggregated_data
变量中。
排序数据
aggregated_data = aggregated_data.sort_values(ascending=False)
这段代码对聚合后的数据按销售数量进行降序排序。
绘制饼图
plt.pie(aggregated_data, labels=aggregated_data.index, autopct='%.2f%%', startangle=90, wedgeprops={'linewidth': 1, 'edgecolor': 'white'}, pctdistance=0.85)
这段代码使用plt.pie
函数绘制饼图。传入的参数包括聚合后的销售数量数据和店铺名称,以及一些设置如起始角度、扇形边框样式和百分比标签等。
设置图表标题和图例
plt.title('店铺销售数量占比') plt.legend(loc='best')
这段代码使用plt.title
函数设置图表标题,并使用plt.legend
函数添加图例。
隐藏饼图中间的白色圆圈
plt.gca().set_aspect('equal') plt.tight_layout()
这段代码使用plt.gca().set_aspect('equal')
将饼图设置为正圆形,并使用plt.tight_layout
自动调整图表布局。
显示图表
plt.show()
这段代码显示绘制好的图表。
效果图展示:
完整代码如下:
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['SimHei'] # 指定中文字体为黑体
# 从Excel文件中读取数据
data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')
# 根据店铺名称聚合销售数量
aggregated_data = data.groupby('店铺名称')['销售数量'].sum()
# 按销售数量降序排列
aggregated_data = aggregated_data.sort_values(ascending=False)
# 绘制饼图
plt.pie(aggregated_data, labels=aggregated_data.index, autopct='%.2f%%', startangle=90,
wedgeprops={'linewidth': 1, 'edgecolor': 'white'},pctdistance=0.85) # 设置起始角度和扇形边框样式
# 设置图表标题和图例
plt.title('店铺销售数量占比')
plt.legend(loc='best')
# 隐藏饼图中间的白色圆圈
plt.gca().set_aspect('equal') # 使饼图为正圆形
plt.tight_layout() # 自动调整图表布局
# 显示图表
plt.show()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2020-10-26 MySQL数据库行转列
2020-10-26 SQLserver数据库如何使用SQL语句查看数据库版本
2020-10-26 MySQL数据库如何使用SQL语句查看数据库版本
2020-10-26 SQLserver 2014使用Convert()函数获取时间
2020-10-26 SQLserver 2014 如何使用Datename()函数获取对应时间