第5章 矩阵图的语法 本章要回答的三个问题: 什么形态的数据适合画成热力图,行列各放什么、颜色编码什么? 相关系数矩阵的热力图里,哪些数字值得看、哪些是统计噪声,配色为什么必须发散型? clustermap 在热力图上加了聚类树,它能"发现分组"吗,边界在哪? 为什么会有这一章 前四章的映射都围绕"列"展开:一列进 x、一列进 hue、一列切分面。但有一类分析对象天生是矩阵——月份对年份的乘客数、任意两个特征的相关系数、用户对商品的评分。这类数据的比较维度有两个(行与列),而 x、y 位置通道已经被行列占用了,于是颜色成为唯一承载数值的通道。矩阵图家族因此完全建立在"数值到颜色的映射"上,这也让它成为第 6 章配色专题的天然前奏:色板选错,矩阵图的结论直接反转。
本章要回答的三个问题:
- 什么形态的数据适合画成热力图,行列各放什么、颜色编码什么?
- 相关系数矩阵的热力图里,哪些数字值得看、哪些是统计噪声,配色为什么必须发散型?
- clustermap 在热力图上加了聚类树,它能"发现分组"吗,边界在哪?
前四章的映射都围绕"列"展开:一列进 x、一列进 hue、一列切分面。但有一类分析对象天生是矩阵——月份对年份的乘客数、任意两个特征的相关系数、用户对商品的评分。这类数据的比较维度有两个(行与列),而 x、y 位置通道已经被行列占用了,于是颜色成为唯一承载数值的通道。矩阵图家族因此完全建立在"数值到颜色的映射"上,这也让它成为第 6 章配色专题的天然前奏:色板选错,矩阵图的结论直接反转。
本章只有两节,但每一节都是独立的完整工具链:heatmap 从数据透视到成图解读,clustermap 从聚类树到"发现结构"的边界讨论。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 5.1 热力图 heatmap | 问题一与二 | 透视加工、annot 标注、发散色板、相关矩阵筛选流程 |
| 5.2 聚类热力图 clustermap | 问题三 | 行列重排、树状图读法、标准化敏感性与结论边界 |
问:长表能直接画热力图吗? 不能。heatmap 只认行列已成网格的矩阵,长表必须先 pivot;它自身也不做任何聚合——pivot 遇到行列组合重复会报错,这恰好是在提醒你先想清楚聚合口径,不是库在找麻烦。pivot 的逆操作 melt 是 1.3 节的主角,两把刀配齐才能在长宽表之间自由走。
问:聚类树能证明分组存在吗? 不能。树状图不提供显著性,结果还随标准化与距离度量摇摆。clustermap 是假设生成器,它发现的块结构要回到第 4 章的组间比较或正式的聚类评估确认后,才能写进结论。
问:相关矩阵为什么要遮一半? 对角线恒为一、上下三角互为镜像,全画信息不变、版面翻倍。mask=np.triu(np.ones_like(corr, dtype=bool)) 传给 heatmap,保留下三角加数值标注,是最紧凑的标准形态。
矩阵图把颜色推上了唯一数值通道的位置,颜色的三套尺度体系(定性、顺序、发散)在 5.1 已经初见威力。第 6 章把这套体系完整展开:从调色板对象到主题上下文,配色与风格将覆盖此前四章所有"细节层"欠下的账。