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('C:\\Users\Admin\\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() 
相关推荐
王者鳜錸1 小时前
PYTHON让繁琐的工作自动化-PYTHON基础
python·microsoft·自动化
key_Go1 小时前
7.Ansible自动化之-实施任务控制
python·ansible·numpy
wyiyiyi9 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
mit6.8249 小时前
[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
人工智能·python
没有bug.的程序员9 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋9 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
AntBlack10 小时前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
杜子不疼.12 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
myzzb13 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
TLuoQiu13 小时前
小电视视频内容获取GUI工具
爬虫·python