Python教你可视化统计为扇形图(15)

一、应用场景

扇形图(饼图)适合展示各部分占整体的比例关系,常用于:

  • 产品销售占比分析
  • 预算分配比例
  • 用户群体分布
  • 任何需要展示百分比构成的数据

演示数据:
在这里插入图片描述

效果图:
在这里插入图片描述

二、准备工作

  1. 安装必要的Python库:
pip install pandas matplotlib
  1. 准备演示数据demo_data.csv(格式如下):
产品类别,销售额
手机,1200
电脑,1800
平板,800
耳机,500
智能手表,600

三、代码实现

脚本15python表格数据可视化扇形图.py功能:

  • 支持读取CSV/Excel格式的数据文件
  • 自动计算各部分占比并绘制扇形图
  • 可自定义图表标题
  • 通过--show参数控制是否弹窗显示图表

四、使用教程

4.1基本用法(仅保存图片)

python 15python表格数据可视化扇形图.py --input demo_data.csv --output sales_pie.png --title "产品销售占比"

4.2弹窗显示图表(保存并显示)

python 15python表格数据可视化扇形图.py --input demo_data.csv --output sales_pie.png --title "产品销售占比" --show

五、 注意事项

  1. 数据文件第一列应为分类名称,第二列为数值
  2. 使用--show参数时会弹窗显示图表,关闭窗口后程序才会继续执行
  3. 中文显示需要系统安装SimHei字体(Windows系统默认已安装)
  4. 扇形图适合展示不超过7-8个分类的数据,过多分类会导致图表难以阅读

六、扩展练习

  1. 尝试修改plt.pie()的参数,如添加阴影效果、调整起始角度等
  2. 为扇形图添加图例说明
  3. 将多个扇形图组合成子图对比不同数据集
  4. 尝试使用不同的配色方案

七、完整代码

import pandas as pd
import matplotlib.pyplot as plt
import argparse
from matplotlib import rcParams

# 设置中文字体
rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

def visualize_data(input_file, output_image, title='数据统计图', show=False):
    try:
        # 读取数据文件
        if input_file.endswith('.csv'):
            data = pd.read_csv(input_file)
        else:
            data = pd.read_excel(input_file)
            
        # 绘制扇形图
        plt.figure(figsize=(10, 6))
        plt.pie(
            data.iloc[:, 1], 
            labels=data.iloc[:, 0], 
            autopct='%1.1f%%',
            startangle=90,
            shadow=True
        )
        plt.title(title, fontproperties='SimHei')
        plt.axis('equal')  # 保证是圆形
        plt.tight_layout()
        
        # 保存图表
        plt.savefig(output_image)
        print(f"图表已保存至 {output_image}")
        
        # 根据参数决定是否显示图表
        if show:
            plt.show()
            
    except Exception as e:
        print(f"发生错误: {e}")

if __name__ == "__main__":
    # 设置命令行参数
    parser = argparse.ArgumentParser(description='表格数据可视化统计为扇形图')
    parser.add_argument('--input', required=True, help='输入数据文件路径(支持.csv和.xlsx)')
    parser.add_argument('--output', required=True, help='输出图片路径(.png/.jpg)')
    parser.add_argument('--title', help='图表标题', default='数据统计图')
    parser.add_argument('--show', action='store_true', help='是否弹窗显示图表')
    
    args = parser.parse_args()
    
    # 调用可视化函数
    visualize_data(
        input_file=args.input,
        output_image=args.output,
        title=args.title,
        show=args.show
    )

八、下期预告

掌握了数据可视化技能,你就能轻松将枯燥的数据转化为直观的图表啦!

下期预告:《Python自动化从入门到实战(16) - Python教你实现数据可视化同时展示统计为柱形图、折线图、扇形图》

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐