Python自动化从入门到实战(15) - Python教你实现数据可视化统计为扇形图
下期预告:《Python自动化从入门到实战(16) - Python教你实现数据可视化同时展示统计为柱形图、折线图、扇形图》掌握了数据可视化技能,你就能轻松将枯燥的数据转化为直观的图表啦!
·
Python教你可视化统计为扇形图(15)
一、应用场景
扇形图(饼图)适合展示各部分占整体的比例关系,常用于:
- 产品销售占比分析
- 预算分配比例
- 用户群体分布
- 任何需要展示百分比构成的数据
演示数据:
效果图:
二、准备工作
- 安装必要的Python库:
pip install pandas matplotlib
- 准备演示数据
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
五、 注意事项
- 数据文件第一列应为分类名称,第二列为数值
- 使用
--show参数时会弹窗显示图表,关闭窗口后程序才会继续执行 - 中文显示需要系统安装SimHei字体(Windows系统默认已安装)
- 扇形图适合展示不超过7-8个分类的数据,过多分类会导致图表难以阅读
六、扩展练习
- 尝试修改
plt.pie()的参数,如添加阴影效果、调整起始角度等 - 为扇形图添加图例说明
- 将多个扇形图组合成子图对比不同数据集
- 尝试使用不同的配色方案
七、完整代码
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教你实现数据可视化同时展示统计为柱形图、折线图、扇形图》
更多推荐
所有评论(0)