当前位置: 首页 > news >正文

一周学会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()

http://www.dtcms.com/a/332396.html

相关文章:

  • Laravel 中解决分表问题
  • ESP32-C3_SMARTCAR
  • 高并发场景下限流算法对比与实践指南
  • 【unity实战】Unity游戏开发:如何用ScriptableObject与序列化多态实现可复用的模块化效果系统?
  • ABP vNext+ WebRTC DataChannel 低延迟传感推送
  • 物联网(IoT)系统中,通信协议如何选择
  • C++——分布式
  • Al大模型-本地私有化部署大模型-大模型微调
  • 图像识别控制技术(Sikuli)深度解析:原理、应用与商业化前景
  • Zabbix【部署 01】Zabbix企业级分布式监控系统部署配置使用实例(在线安装及问题处理)程序安装+数据库初始+前端配置+服务启动+Web登录
  • 後端開發Python篇
  • StarRocks集群部署
  • 从 0 到 1 玩转Claude code(蓝耘UI界面版本):AI 编程助手的服务器部署与实战指南
  • Xget:为您的开发工作流解锁极致速度
  • 清除 pnpm 缓存,解决不同源安装依赖包失败的问题
  • “大模型”技术专栏 | 浅谈基于 Kubernetes 的 LLM 分布式推理框架架构:概览
  • 力扣 hot100 Day74
  • Floyd 判圈算法(龟兔赛跑算法)
  • LeetCode热题100--146.LRU缓存--中等
  • SSL和TLS协议的消息认证码(MAC)
  • Grafana 与 InfluxDB 可视化深度集成(一)
  • Grafana 与 InfluxDB 可视化深度集成(二)
  • LeetCode 刷题【42. 接雨水】
  • RecyclerView 性能优化:从原理到实践的深度优化方案
  • 新手向:Python函数定义与参数传递(位置参数、关键字参数、默认参数)
  • electron之win/mac通知免打扰
  • 什么是接口?PHP如何使用 SessionHandlerInterface 接口实现Session自定义会话数据存储
  • cloudflare缓存配置
  • 【Mysql语句练习】
  • 20250815在荣品RD-RK3588-MID开发板的Android13下点卡迪的7寸LCD屏