第6章 配色与风格的语法 本章要回答的三个问题: Seaborn 的调色板体系分哪三类尺度,分别对应什么数据语义,选错的代价是什么? 主题(style)与绘图上下文(context)各控制什么,为什么同一份代码在报告和幻灯里需要不同的设置? 轴标签、图例、标题、去边框这些"最后一公里"的打磨,有哪些一条龙接口? 为什么会有这一章 前五章的注意力都在映射与图层上,细节层一直将就着默认值。默认值救了很多新手,也埋了三类雷:把渐变色板配给类别变量(读者误以为类别有大小次序)、把彩虹色板配给数值(红色高还是黄色高没人记得住)、把屏幕上好看的深色主题直接搬进打印报告(黑白打印后一片泥)。颜色是前五章每个图形家族都绕不开的通道,风格与标注则决定成图能不能直接交付——这一章把细节层的欠账一次清算。
本章要回答的三个问题:
- Seaborn 的调色板体系分哪三类尺度,分别对应什么数据语义,选错的代价是什么?
- 主题(style)与绘图上下文(context)各控制什么,为什么同一份代码在报告和幻灯里需要不同的设置?
- 轴标签、图例、标题、去边框这些"最后一公里"的打磨,有哪些一条龙接口?
前五章的注意力都在映射与图层上,细节层一直将就着默认值。默认值救了很多新手,也埋了三类雷:把渐变色板配给类别变量(读者误以为类别有大小次序)、把彩虹色板配给数值(红色高还是黄色高没人记得住)、把屏幕上好看的深色主题直接搬进打印报告(黑白打印后一片泥)。颜色是前五章每个图形家族都绕不开的通道,风格与标注则决定成图能不能直接交付——这一章把细节层的欠账一次清算。
本章的视角依然是拆解台:调色板属于映射层(它是"数值到颜色"的刻度),主题与上下文属于细节层(它们改的是非数据墨水),标注接口横跨两层。分清归属,参数就不会张冠李戴。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 6.1 调色板体系 | 问题一 | 三类尺度、color_palette 语法、无障碍与自定义 |
| 6.2 主题风格与绘图上下文 | 问题二 | set_theme 全局设置、context 场景切换、despine |
| 6.3 标注图例与坐标细节 | 问题三 | 标签与标题接口、图例搬移、刻度与参考线 |
问:色板与主题会互相覆盖吗? 各管一段。palette 管数据到颜色的映射,style 管网格边框字体这类非数据墨水,context 只缩放字号线宽。三者在 set_theme 里一次设齐,比分散调用三个 set 函数再互相踩踏干净得多。
问:色盲友好怎么快速验证? 把图转灰度,各组仍可分则黑白打印也基本安全;内置 color_palette('colorblind') 可直接用。连续数据选亮度单调的色板(viridis、crest 一系),彩虹板的红绿两端在色盲视角下不可分。
问:设置的 palette 为什么没生效? 最常见原因是 hue 列是数值——数值语义会走顺序色板逻辑,忽略你给的定性色表。先转 category 再设 palette,第 1.3 节的老问题在配色层再出现一次。
细节层清账之后,单张图的质量已经可控。但真实分析经常需要"一组图讲一个故事"——多个面板共享图例、成对矩阵定制对角线、联合图分层装配。第 7 章拆 Grid 家族与生态集成,把已掌握的零件组装成成套的视觉产品。