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 分钟前
融合C++与Python:兼顾开发效率与运行性能
java·c++·python
yaoh.wang21 分钟前
力扣(LeetCode) 104: 二叉树的最大深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
木头左30 分钟前
机器学习辅助的LSTM交易策略特征工程与入参筛选技巧
python
Lenyiin33 分钟前
《 Linux 修炼全景指南: 八 》别再碎片化学习!掌控 Linux 开发工具链:gcc、g++、GDB、Bash、Python 与工程化实践
linux·python·bash·gdb·gcc·g++·lenyiin
Swizard38 分钟前
告别“意大利面条”:FastAPI 生产级架构的最佳实践指南
python·fastapi
不惑_44 分钟前
通俗理解卷积神经网络
人工智能·windows·python·深度学习·机器学习
滴啦嘟啦哒1 小时前
【机械臂】【总览】基于VLA结构的指令驱动式机械臂
python·ros2·vla
写代码的【黑咖啡】1 小时前
深入理解 Python 中的函数
开发语言·python
梦帮科技1 小时前
量子计算+AI:下一代智能的终极形态?(第一部分)
人工智能·python·神经网络·深度优先·量子计算·模拟退火算法
小兔崽子去哪了1 小时前
机器学习 线性回归
后端·python·机器学习