第五章、使用Matplotlib绘制进阶图形
目录
-
前言:为什么需要饼图?
-
基础饼图绘制
-
2.1 快速入门示例
-
2.2 绘制饼图的核心函数语法
-
-
高级定制技巧
-
3.1 突出显示关键区块
-
3.2 添加百分比标签
-
3.3 环形图与多层饼图
-
-
实战:2001-2019年劳动力与就业人员数据
-
常见问题与解决方案
-
总结与扩展学习
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
的交互式饼图