一、引言与实验原理
板块层级图(treemap)是一种基于面积的可视化方式,通过每一个板块(通常为矩形)的尺寸大小进行度量。外部矩形代表父类别,而内部矩形代表子类别。
我们也可以通过板块层级图简单的呈现比例关系,不过它更擅于呈现树状结构的数据。
读取绘图所用的数据,并对数据进行处理将数据处理成我们可以使用的形式,绘制板块层级图,设置标签和标题
二、实验目的与实验环境
- 掌握数据文件读取
- 掌握数据处理的方法
- 实现板块层级图的绘制
- 检查实验环境:
OS:win10
python:v3.6
三、实验步骤
安装实验所需包
一、安装pandas、matplotlib、seaborn、squarify



二、读取数据
在这里我们使用pandas库中的read_csv函数来读取这3个数据文件

对前几行的数据进行读取

三、数据处理
我们需要根据源表对目标表进行匹配查询,使用 merge 函数进行操作

进行匹配操作后的数据:


四、绘制板块层级图
绘制初始的板块层级图

设置 x、y 轴的属性:
添加图表标题,添加数据标签


板块层级图效果如下

四、代码知识点总结
-
库的导入与配置
- 数据操作:
pandas用于数据操作,seaborn增强可视化效果 - 可视化:
matplotlib基础绘图,squarify绘制树形图 - 中文支持:通过
rcParams配置中文字体和符号显示
- 数据操作:
-
数据加载与合并
- 使用
pd.read_csv()加载CSV数据 - 多表关联:通过
pd.merge()实现左连接(how='left')
- 使用
-
数据预处理
- 列选择:
temp = order_products_prior_df[['col1', 'col2']] - 聚合统计:
groupby()结合nunique()计算唯一值数量 - 数据拼接:
pd.concat()横向合并聚合结果
- 列选择:
-
数据排序与索引设置
set_index()设置索引列sort_values()按指定列降序排序
-
可视化配置
- 颜色映射:使用
matplotlib.cm.viridis颜色方案 - 归一化处理:
Normalize()将数据映射到颜色区间 - 标签生成:通过
f-string和zip()动态生成多行标签
- 颜色映射:使用
-
树形图绘制
- 使用
squarify.plot()绘制板块层级图 - 参数控制:
alpha调整透明度,aspect="equal"保持比例 - 隐藏坐标轴:
set_xticks([])和set_yticks([])
- 使用
-
颜色条与标注
- 通过伪图像 (
imshow) 添加颜色条 (colorbar) fig.text()添加颜色条标题
- 通过伪图像 (
-
图形优化
plt.tight_layout()自动调整子图布局fig.suptitle()设置主标题位置
分步代码解析
# 1. 库导入与配置
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
im

最低0.47元/天 解锁文章
516

被折叠的 条评论
为什么被折叠?



