第2章 · Matplotlib 进阶绘图 章节摘要:第 1 章我们学会了在一张画布上画单张图,这一章解决的是"画得更多、更好看、更专业"的问题。你会掌握五件事:用多子图在一张画布上排布多个图,用颜色系统与色彩映射把数值翻译成颜色,用样式表与手工美化统一图表外观,用箱线图、饼图、等高线、三维图等特殊图形处理非常规数据,以及用动画和交互让图"动起来"。这五节是一条"装修流水线":先分区、再上色、后软装、换造型、最后动起来。读完这一章,你能把一张平淡的图改造成一张结构清晰、配色得当、能直接放进报告里的作品。
章节摘要:第 1 章我们学会了在一张画布上画单张图,这一章解决的是"画得更多、更好看、更专业"的问题。你会掌握五件事:用多子图在一张画布上排布多个图,用颜色系统与色彩映射把数值翻译成颜色,用样式表与手工美化统一图表外观,用箱线图、饼图、等高线、三维图等特殊图形处理非常规数据,以及用动画和交互让图"动起来"。这五节是一条"装修流水线":先分区、再上色、后软装、换造型、最后动起来。读完这一章,你能把一张平淡的图改造成一张结构清晰、配色得当、能直接放进报告里的作品。
阅读完本章,你应当能够:
subplots 和 GridSpec 在一张画布上排出规整或不规整的多子图布局,并处理共享坐标轴FuncAnimation 做基础动画,用事件回调与滑块、按钮给图加上交互这一章的五节不是并列的五种"功能按钮",而是一条完整的"装修流水线":先把画布分区(多子图),再给每个区定调色(颜色),接着统一外观并打磨细节(样式),遇到常规图形表达不了的数据就换特殊图形,最后让静态作品动起来(动画与交互)。

一句话:布局决定"放哪里",颜色决定"表达什么",样式决定"看起来怎样",特殊图形决定"能不能画",动画决定"怎么讲"。五者合起来,才是一张完整的进阶图。
| 环节 | 它回答的问题 | 典型手段 | 什么时候用到 |
|---|---|---|---|
| 多子图绘制 | 多个图怎么摆在一起 | subplots、GridSpec | 对比多组数据、展示多维度 |
| 颜色与色彩映射 | 数值怎么变成颜色 | 五种颜色写法、colormap | 热力图、等高线、散点着色 |
| 样式与美化 | 图怎么统一、怎么变好看 | 样式表、手工调参 | 出报告、统一品牌风格 |
| 特殊图形绘制 | 非常规数据用什么图 | 箱线图、饼图、等高线、3D | 分布、占比、地形、空间数据 |
| 动画与交互 | 静态图讲不清怎么办 | FuncAnimation、事件回调 | 时间序列演示、数据探索 |
讲怎么把一张画布切成多块,规整的用 subplots,不规整的用 GridSpec,还要处理共享坐标轴、间距和标题。这是本章的"地基",后面好几节的示例都会用到子图。
先讲清 Matplotlib 里五种写颜色的方式,再讲 colormap 的分类:顺序、发散、定性、循环,以及怎么按数据类型选、怎么自定义。颜色是最容易让图"看起来专业"的一环。
从一键换肤的样式表,到线条、标记、文本、坐标轴、图例的逐项打磨。核心思想是"先统一,再微调",避免一张图东一块西一块。
箱线图和提琴图看分布,饼图看占比,等高线看三维曲面的二维投影,三维散点和曲面图看空间关系。重点不是背函数,而是知道"什么数据该配什么图"。
用 FuncAnimation 让画面逐帧更新,用事件回调和滑块、按钮让读者自己动手探索数据。这一节偏概念,讲清机制即可,具体代码量不大。
一句话:2.1 到 2.4 都在"造一张静态好图",2.5 则把这张图从静态作品变成动态演示。前四节的能力,最终都能被 2.5 复用——动画的每一帧,本质就是一张画得还不错的静态图。
多子图(分区) ──┐ 颜色(上色) ──┼──► 一张静态好图 ──► 动画与交互(动起来) 样式(装修) ──┤ 特殊图形(造型) ─┘
建议顺序读,但 2.3 和 2.4 相对独立,可以按需跳。只有 2.5 会默认你已经会用子图、颜色和样式把单帧画好。
五节最好按顺序走,但也可以按需跳。如果你时间紧、只想要"图变好看",优先读 2.2 和 2.3;如果你常做数据探索、要对比多组结果,优先读 2.1 和 2.4;动画与交互可以放到最后,它依赖前面几节的静态图功底。每一节都配了能直接跑的简短代码,建议边读边改参数,看图怎么跟着变。
多子图是"容器"层面的能力,颜色是"内容"层面的能力,两者不在一个维度,谈不上谁更基础。但本章的示例顺序是先布局后上色,因为先分区、再定调色,更符合实际的绘图流程。真要二选一先补,我建议先补颜色——单张图也会天天用到颜色,多子图则只有多图对比时才用得上。
Seaborn 等高层库本质上是对 Matplotlib 的封装,它们的多子图、调色板、样式背后都是本章讲的这些机制。你把这五节吃透,再看 Seaborn 的接口会有一眼看到底的感觉:所谓 hue、palette、style,不过是把"颜色映射、样式表"这些概念换了个更顺手的壳。这也是本书不推荐跳过第 2 章直接上高层库的原因。
ax 对象,如果还分不清 plt 接口和面向对象接口,先回去补 1.2。⚠️ 常见坑:很多新手一上来就纠结"用
plt.subplot还是plt.subplots、colormap 用viridis还是coolwarm",结果一张图调了半天还丑。本章想帮你建立的是判断力:先想清楚"这张图要表达什么",再回头选工具。
💡 关键直觉:把这五节当成装修五个工种——分区、上色、软装、造型、动效。装修前先画分区图,比上来就刷漆省事得多。画图也一样,先布局,再上色。