一周学会Matplotlib3 Python 数据可视化-绘制树形图
锋哥原创的Matplotlib3 Python数据可视化视频教程:
2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili
课程介绍
本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。
绘制树形图
树形图(Treemap)是一种高效的可视化层次结构数据的方法,它通过嵌套矩形的大小和颜色编码数据。Squarify 是一个专门用于计算树形图矩形布局的 Python 库,与 Matplotlib 完美集成。
安装:
pip install squarify -i https://pypi.tuna.tsinghua.edu.cn/simple
squarify.plot()
是 Python 库 squarify
中用于绘制树状图(Treemap) 的核心函数。它将数值数据转换为嵌套矩形,矩形面积大小代表数值比例,直观展示数据分布。以下是对该方法的详细解析:
squarify.plot(sizes, norm_x=100, # 归一化的宽度基准(当未指定dx时使用)norm_y=100, # 归一化的高度基准(当未指定dy时使用)x=0, # 树状图左下角的起始X坐标y=0, # 树状图左下角的起始Y坐标dx=None, # 树状图的总宽度(与norm_x二选一)dy=None, # 树状图的总高度(与norm_y二选一)label=None, # 每个矩形的文本标签列表value=None, # 显示在标签下方的额外数值列表 常与label配合使用color=None, # 矩形颜色alpha=None, # 透明度(0.0 完全透明 → 1.0 完全不透明)pad=False, # 矩形之间的间距bar_kwargs=None, # 传递给矩形绘图函数的额外参数text_kwargs=None, # 文本样式的额外参数**kwargs)
我们看一个示例:
import matplotlib.pyplot as plt
import squarify
import numpy as np
# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 准备数据
sizes = [500, 300, 200, 100, 75, 50] # 矩形大小
labels = ["技术部\n(500人)", "市场部\n(300人)", "财务部\n(200人)","人力资源\n(100人)", "行政\n(75人)", "法务\n(50人)"]
colors = [plt.cm.tab20(i) for i in range(len(sizes))] # 使用颜色映射
# 创建画布
plt.figure(figsize=(12, 8))
# 绘制树形图
squarify.plot(sizes=sizes, label=labels, color=colors,alpha=0.8, pad=True, text_kwargs={'fontsize': 12})
# 添加标题和装饰
plt.title("公司各部门人员分布树形图", fontsize=16, pad=20)
plt.axis('off') # 关闭坐标轴
plt.tight_layout()
plt.show()