【Python可视化】Matplotlib绘制专业饼图详解:从基础到高级定制

第五章、使用Matplotlib绘制进阶图形


目录

  1. 前言:为什么需要饼图?

  2. 基础饼图绘制

    • 2.1 快速入门示例

    • 2.2 绘制饼图的核心函数语法

  3. 高级定制技巧

    • 3.1 突出显示关键区块

    • 3.2 添加百分比标签

    • 3.3 环形图与多层饼图

  4. 实战:2001-2019年劳动力与就业人员数据

  5. 常见问题与解决方案

  6. 总结与扩展学习


1. 前言:为什么需要饼图?

饼图是数据可视化中最直观的图表类型之一,特别适合展示构成比例关系。例如:

  • 电商平台各品类销售额占比

  • 公司各部门预算分配

  • 用户年龄层分布

通过Matplotlib绘制的饼图,我们可以:
1、快速识别主导因素
2、直观对比各部分权重
3、突出关键数据区块

本文将带你从最简单的饼图开始,逐步实现商业报告级可视化效果。


2. 基础饼图绘制

2.1 快速入门示例

import matplotlib.pyplot as plt

labels = ['娱乐', '育儿', '饮食', '房贷', '交通', '其它']
x = [200, 500, 1200, 7000, 200, 900]

# 绘制饼图
plt.pie(x, labels=labels, autopct='%1.1f%%')
# 设置图表标题
plt.title("家庭支出比例")
# 显示图表
plt.show()

2.2 绘制饼图的核心函数语法

函数语法; plt.pie(x, explode=None, labels=None, colors=None, autopct=None, **kwargs, radius = 1)
  x:表示各部分的数据值,是绘制饼图的核心数据。
  explode:用于突出显示某些部分,是一个与 x 长度相同的数组,值越大,对应的部分突出越明显。
  labels:各部分的标签,方便我们识别每个扇形代表的内容。
  colors:各部分的颜色,可自定义以增加图表的美观度。
  autopct:用于显示各部分所占百分比的格式,如 '%1.1f%%' 表示保留一位小数。
  radius: 半径,默认值是1

3. 高级定制技巧

3.1 突出显示关键区块

explode = (0.1, 0, 0, 0)  # 只突出第一个区块
plt.pie(sales, explode=explode, shadow=True)

3.2 添加百分比标签

plt.pie(sales, autopct='%1.1f%%', pctdistance=0.8)

3.3 环形图绘制

plt.pie(sales, wedgeprops={'width':0.3})  # width控制环宽

4. 实战:2001-2019年劳动力与就业人员数据

import numpy as np
import matplotlib.pyplot as plt
data = np.load('2001-2019年劳动力与就业人员数据.npz', encoding='ASCII', allow_pickle=True) 

print(data)
# print(data["arr_0"])
# print(data["arr_1"])

# 绘制 “2019年城乡就业人数柱形图 ”
plt.rcParams['font.sans-serif']=['SimHei']    #解决中文乱码
columns = data['arr_0']  # 提取其中的columns数组,视为数据的标签
values = data['arr_1']  # 提取其中的values数组,视为数据的存在位置

label = ['城镇就业人员', '乡村就业人员']
explode = [0.01, 0.01]  # 设定各项距离圆心偏移0.01个半径在距离
p = plt.figure(figsize=(6, 6), dpi=80)  # 设置画布
plt.pie(values[-1, 3:5], explode=explode, labels=label, autopct='%1.1f%%')
plt.title('2019年城乡就业人数分布饼图')
plt.show()

5. 常见问题与解决方案

1、中文显示为方框?

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体

2、标签重叠怎么办?

  • 调整labeldistance参数

  • 使用bbox_inches='tight'保存

3、如何添加图例?

plt.legend(labels=categories, loc="best")

6. 总结与扩展学习

通过本文你学会了:

  • 基础饼图的6个核心参数

  • 3种高级美化技巧

  • 商业场景实战应用

进阶建议:
➤ 尝试用Pandas直接生成饼图:df.plot.pie()
➤ 学习Seaborn的颜色主题系统
➤ 了解plotly的交互式饼图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值