第3章 关系图的语法 本章要回答的三个问题: 两个数值变量之间的关系,散点图之外还有哪些表达层次(大小、形状、颜色各自承载什么信息)? 折线图在重复观测时悄悄做了聚合,这个"隐式统计"何时是帮助、何时是陷阱? relplot 的分面语法与 displot 有何异同,怎么把一个关系问题铺成面板网格? 为什么会有这一章 第 2 章结束时你能回答"一个变量长什么样",但数据分析的现实问题几乎都是关系问题:消费越高小费越多吗、广告投入和销量是线性还是饱和、两组人群的指标走势是否交叉。关系图的映射层从一列变成两列,视觉通道的预算立刻紧张起来——x 和 y 各占一个位置通道后,剩余的 hue、size、style、col 要同时服务多个维度,怎么分配就成了设计问题。
本章要回答的三个问题:
- 两个数值变量之间的关系,散点图之外还有哪些表达层次(大小、形状、颜色各自承载什么信息)?
- 折线图在重复观测时悄悄做了聚合,这个"隐式统计"何时是帮助、何时是陷阱?
- relplot 的分面语法与 displot 有何异同,怎么把一个关系问题铺成面板网格?
第 2 章结束时你能回答"一个变量长什么样",但数据分析的现实问题几乎都是关系问题:消费越高小费越多吗、广告投入和销量是线性还是饱和、两组人群的指标走势是否交叉。关系图的映射层从一列变成两列,视觉通道的预算立刻紧张起来——x 和 y 各占一个位置通道后,剩余的 hue、size、style、col 要同时服务多个维度,怎么分配就成了设计问题。
更关键的是,折线图藏着 Seaborn 里最重要的一次"隐式统计":同一个 x 出现多个 y 时,lineplot 默认聚合出均值并画出 95% 置信区间。不了解这件事的人,要么对着误差带困惑,要么在根本不该画折线的数据上画出一条虚假的平滑趋势。本章把这笔"Seaborn 替你做的账"明明白白摊开。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 3.1 散点图 scatterplot | 问题一 | 三通道分配原则、过绘识别与抽样、透明度武器 |
| 3.2 折线图 lineplot 与聚合 | 问题二 | 隐式聚合机制、误差带读法、estimator 与 errorbar 定制 |
| 3.3 relplot 分面工厂 | 问题三 | kind 切换、col_wrap 排版、与 displot 的语法对照 |
问:折线图的误差带就是标准差吗? 不是。默认是 bootstrap 重采样得到的 95% 置信区间,表达均值估计的不确定性,样本越大带越窄;标准差描述数据本身的离散,不随样本量收窄。两者切换靠 errorbar 参数,语义辨析见 3.2。
问:散点太密糊成一团怎么办? 三个梯度依次升级:先加透明度并缩小点径,再换二维密度图,最后才轮到抽样。三种手段的适用样本量与代价,3.1 有可直接复制的对照代码。
问:relplot 和 lineplot 到底用哪个? 要分面(col、row)用前者,它返回 FacetGrid、自建画布;要把图嵌进已有子图布局用后者,它返回普通 Axes。能力不重叠也不冲突,同一段分析里两者混用是常态——分面探索用工厂,成图排版用 axes 级。
关系图把两个数值列放上了映射层。但业务数据里更常见的形态是"一个类别、一个数值"——各产品的销量对比、各科室的平均住院日。第 4 章的分类图把 x 轴从数值换成类别,统计量从"聚合"扩展到"组间比较",八种类别图将展示同一套语法在不同统计口径上的变奏。