• 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() 
    复制代码

     

  • 相关阅读:
    Qt QFrame详解
    HTML前端
    HttpRunner初体验
    String 在创建时究竟创建了几个对象
    hive 不同维度聚合 grouping sets 使用详情
    神经元模型图手工制作,神经元模型图手工模型
    GPT-4.0网页平台-ChatYY
    每天一道算法题:125. 验证回文串
    多种方法查看Mysql版本信息(Windows、LINUX系统都适用)
    基于java+springboot+mybatis+vue+elementui的眼镜商城系统
  • 原文地址:https://www.cnblogs.com/lcl-cn/p/17790538.html