一周学会Matplotlib3 Python 数据可视化-绘制树形图

发布于:2025-08-18 ⋅ 阅读:(16) ⋅ 点赞:(0)

锋哥原创的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()


网站公告

今日签到

点亮在社区的每一天
去签到