• 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() 方法绘制圆环图,其中传递销售数量数据、标签、起始角度、百分比格式、扇形区域宽度、标签距离和颜色等参数,并将返回的三个对象分别保存在 wedgestexts 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 库绘制圆环图,并最终展示了结果。希望这篇文章对你在数据分析和可视化方面有所帮助。

  • 相关阅读:
    Linux的目录管理
    窗口函数的5种方法总结
    局域网客户远程密码被暴破 登录为2确认用户没有这样登录过
    springboot整合Redis报错:java.io.IOException 远程主机强迫关闭了一个现有的连接
    STM32 中断详解,适合初级学员
    易优cms小程序常见问题
    政府指导89元保330万 “聊惠保”2024年度正式上线!
    10-DOM节点操作
    hive优化到底应该怎么优化(面试必备)
    智能感应门改造工程
  • 原文地址:https://www.cnblogs.com/lcl-cn/p/17808676.html