Python利用pandas和matplotlib实现绘制圆环图

 更新时间:2023年11月05日 08:12:24   作者:qwerrt9  
在可视化的过程中,圆环图是一种常用的方式,特别适合于展示各类别占比情况,本文将介绍如何使用 Python中的 pandas 和 matplotlib 库,来制作一个店铺销量占比的圆环图,需要的可以参考下

制作店铺销量占比圆环图

在数据分析中,数据可视化是非常重要的一环。在可视化的过程中,圆环图是一种常用的方式,特别适合于展示各类别占比情况。本文将介绍如何使用 Python 中的 pandas 和 matplotlib 库,来制作一个店铺销量占比的圆环图。

数据准备

我们假设现在有一份销售数据的 Excel 文件,其中包含了不同店铺的销售数量数据。我们将使用 pandas 库来读取和处理这份数据。下面是读取数据的代码:

import pandas as pd

# 从Excel文件中读取数据
data = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')

数据预处理

我们需要按照店铺名称来聚合销售数量数据,以便于后续的可视化。我们可以使用 pandas 库的 groupby 函数来实现这一步骤。下面是代码:

# 按店铺名称聚合销售数量
sales_by_shop = data.groupby('店铺名称')['销售数量'].sum()

可视化

现在我们已经得到了按店铺名称聚合后的销售数量数据,接下来就可以使用 matplotlib 库来制作圆环图了。下面是完整的可视化代码:

import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['SimHei']  # 指定中文字体为黑体

# 绘制圆环图
fig, ax = plt.subplots(figsize=(8, 8))
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 设置颜色
wedges, texts, autotexts = ax.pie(sales_by_shop, labels=sales_by_shop.index, startangle=90, autopct='%1.1f%%', wedgeprops={'width': 0.3}, labeldistance=1.15, colors=colors)

# 添加标题和图例
ax.set_title('店铺销量占比', size=20)
ax.legend(wedges, sales_by_shop.index,
          title="店铺名称",
          loc="center left",
          bbox_to_anchor=(1, 0, 0.5, 1),
          fontsize=14)

# 修改字体大小
plt.setp(texts, size=15)
plt.setp(autotexts, size=14)

# 显示图形
plt.show()

首先,我们使用 subplots 函数创建一个画布,并设置画布的大小。然后,我们定义了一个颜色列表,用于设置不同类别的颜色。

接着,我们调用 pie 函数来绘制圆环图。在该函数中,我们传入按店铺名称聚合后的销售数量数据,设置了一系列参数,如起始角度、自动计算百分比等。

最后,我们添加了标题和图例,并修改了字体大小。最后一步调用 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')

# 按店铺名称聚合销售数量
sales_by_shop = data.groupby('店铺名称')['销售数量'].sum()
# 使用 groupby() 方法按店铺名称聚合销售数量,并计算每个店铺的销售总量,结果保存在 sales_by_shop Series 中

# 绘制圆环图
fig, ax = plt.subplots(figsize=(8, 8))
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99', '#ffa3a3'] # 设置颜色
wedges, texts, autotexts = ax.pie(sales_by_shop, labels=sales_by_shop.index,
                                  startangle=90, autopct='%.2f%%',
                                  wedgeprops={'width': 0.3}, labeldistance=1.15,
                                  colors=colors)
# 使用 ax.pie() 方法绘制圆环图,其中传递销售数量数据、标签、起始角度、百分比格式、扇形区域宽度、标签距离和颜色等参数,并将返回的三个对象分别保存在 wedges、texts 和 autotexts 变量中。

# 添加标题和图例
ax.set_title('店铺销量占比', size=20)  # 设置标题
ax.legend(wedges, sales_by_shop.index,  # 添加图例
          title="店铺名称",  # 图例标题
          loc="center left",  # 图例位置
          bbox_to_anchor=(1, 0, 0.5, 1),  # 图例框的坐标
          fontsize=14)

# 修改字体大小
plt.setp(texts, size=15)  # 修改标签字体大小
plt.setp(autotexts, size=14)  # 修改百分比字体大小

# 显示图形
plt.show()

总结

在本文中,我们介绍了如何使用 Python 的 pandas 和 matplotlib 库,来绘制一个店铺销量占比圆环图。我们按照店铺名称聚合销售数量数据,使用 matplotlib 库绘制圆环图,并最终展示了结果。希望这篇文章对你在数据分析和可视化方面有所帮助。

到此这篇关于Python利用pandas和matplotlib实现绘制圆环图的文章就介绍到这了,更多相关Python圆环图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python fileinput模块使用实例

    Python fileinput模块使用实例

    这篇文章主要介绍了Python fileinput模块使用实例,fileinput模块可以遍历文本文件的所有行,本文就给出它的使用代码实例,需要的朋友可以参考下
    2015-05-05
  • Python中常见的数制转换有哪些

    Python中常见的数制转换有哪些

    在本篇文章里小编给大家整理的是一篇关于Python中常见的数制转换例举内容,有需要的朋友们可以跟着学习下。
    2020-05-05
  • python3如何去除字符串中的特殊字符

    python3如何去除字符串中的特殊字符

    这篇文章主要介绍了python3如何去除字符串中的特殊字符,在平时处理字符串的时候,经常会遇到字符串中夹杂着我们不希望看到的特殊字符,那么如何处理这些特殊字符呢,今天就跟着小编来看看吧
    2023-04-04
  • python实现不同电脑之间视频传输功能

    python实现不同电脑之间视频传输功能

    这篇文章主要介绍了python实现不同电脑之间视频传输,本文视频传输实现的前提是确保发送端和接收端接在同一个局域网下,分为发送端和接收端,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • Python flask框架实现查询数据库并显示数据

    Python flask框架实现查询数据库并显示数据

    这篇文章主要介绍了Python flask框架实现查询数据库并显示数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python基于execjs运行js过程解析

    Python基于execjs运行js过程解析

    这篇文章主要介绍了Python基于execjs运行js过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Ubuntu16.04/树莓派Python3+opencv配置教程(分享)

    Ubuntu16.04/树莓派Python3+opencv配置教程(分享)

    下面小编就为大家分享一篇Ubuntu16.04/树莓派Python3+opencv配置教程。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python实现字符串和字典的转换

    python实现字符串和字典的转换

    这篇文章主要为大家详细介绍了python实现字符串和字典的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • pycharm中下载的包但是import还是无法使用/报红的解决方法

    pycharm中下载的包但是import还是无法使用/报红的解决方法

    用pycharm开发时,在导入自己写的python文件时出现模块名爆红的情况,下面这篇文章主要给大家介绍了关于pycharm中下载包但是import还是无法使用/报红的解决方法,需要的朋友可以参考下
    2023-02-02
  • Python的json模块中json.load()和json.loads()的区别

    Python的json模块中json.load()和json.loads()的区别

    这篇文章主要介绍了Python的json模块中json.load()和json.loads()的区别,json.load用于从一个文件对象中读取JSON数据并将其解析为Python对象,而json.loads用于解析一个JSON格式的字符串并将其转换为Python对象,根据你的具体需求选择使用哪个方法,需要的朋友可以参考下
    2024-12-12

最新评论