第2章 Matplotlib 进阶绘图


文档摘要

第2章 · Matplotlib 进阶绘图 章节摘要:第 1 章我们学会了在一张画布上画单张图,这一章解决的是"画得更多、更好看、更专业"的问题。你会掌握五件事:用多子图在一张画布上排布多个图,用颜色系统与色彩映射把数值翻译成颜色,用样式表与手工美化统一图表外观,用箱线图、饼图、等高线、三维图等特殊图形处理非常规数据,以及用动画和交互让图"动起来"。这五节是一条"装修流水线":先分区、再上色、后软装、换造型、最后动起来。读完这一章,你能把一张平淡的图改造成一张结构清晰、配色得当、能直接放进报告里的作品。

第2章 · Matplotlib 进阶绘图

章节摘要:第 1 章我们学会了在一张画布上画单张图,这一章解决的是"画得更多、更好看、更专业"的问题。你会掌握五件事:用多子图在一张画布上排布多个图,用颜色系统与色彩映射把数值翻译成颜色,用样式表与手工美化统一图表外观,用箱线图、饼图、等高线、三维图等特殊图形处理非常规数据,以及用动画和交互让图"动起来"。这五节是一条"装修流水线":先分区、再上色、后软装、换造型、最后动起来。读完这一章,你能把一张平淡的图改造成一张结构清晰、配色得当、能直接放进报告里的作品。

学习目标

阅读完本章,你应当能够:

  1. subplotsGridSpec 在一张画布上排出规整或不规整的多子图布局,并处理共享坐标轴
  2. 说清 RGB、RGBA、十六进制、灰度、命名颜色五种颜色写法,并按数据类型挑选合适的 colormap
  3. 用内置样式表和自定义样式快速统一图表外观,再对线条、标记、文本、坐标轴做精细美化
  4. 独立绘制箱线图、饼图、等高线图、三维图等特殊图形,并知道每种图适合什么数据
  5. FuncAnimation 做基础动画,用事件回调与滑块、按钮给图加上交互
  6. 判断一张图的问题出在"布局、颜色、样式还是图形类型",并给出改法

核心概念速览

这一章的五节不是并列的五种"功能按钮",而是一条完整的"装修流水线":先把画布分区(多子图),再给每个区定调色(颜色),接着统一外观并打磨细节(样式),遇到常规图形表达不了的数据就换特殊图形,最后让静态作品动起来(动画与交互)。

本章进阶绘图全景

本章进阶绘图全景

一句话:布局决定"放哪里",颜色决定"表达什么",样式决定"看起来怎样",特殊图形决定"能不能画",动画决定"怎么讲"。五者合起来,才是一张完整的进阶图。

环节 它回答的问题 典型手段 什么时候用到
多子图绘制 多个图怎么摆在一起 subplots、GridSpec 对比多组数据、展示多维度
颜色与色彩映射 数值怎么变成颜色 五种颜色写法、colormap 热力图、等高线、散点着色
样式与美化 图怎么统一、怎么变好看 样式表、手工调参 出报告、统一品牌风格
特殊图形绘制 非常规数据用什么图 箱线图、饼图、等高线、3D 分布、占比、地形、空间数据
动画与交互 静态图讲不清怎么办 FuncAnimation、事件回调 时间序列演示、数据探索

子章节导航

2.1 多子图绘制

讲怎么把一张画布切成多块,规整的用 subplots,不规整的用 GridSpec,还要处理共享坐标轴、间距和标题。这是本章的"地基",后面好几节的示例都会用到子图。

2.2 颜色系统与色彩映射

先讲清 Matplotlib 里五种写颜色的方式,再讲 colormap 的分类:顺序、发散、定性、循环,以及怎么按数据类型选、怎么自定义。颜色是最容易让图"看起来专业"的一环。

2.3 样式与美化

从一键换肤的样式表,到线条、标记、文本、坐标轴、图例的逐项打磨。核心思想是"先统一,再微调",避免一张图东一块西一块。

2.4 特殊图形绘制

箱线图和提琴图看分布,饼图看占比,等高线看三维曲面的二维投影,三维散点和曲面图看空间关系。重点不是背函数,而是知道"什么数据该配什么图"。

2.5 动画与交互

FuncAnimation 让画面逐帧更新,用事件回调和滑块、按钮让读者自己动手探索数据。这一节偏概念,讲清机制即可,具体代码量不大。

子章节之间的逻辑关系

一句话:2.1 到 2.4 都在"造一张静态好图",2.5 则把这张图从静态作品变成动态演示。前四节的能力,最终都能被 2.5 复用——动画的每一帧,本质就是一张画得还不错的静态图。

多子图(分区) ──┐ 颜色(上色) ──┼──► 一张静态好图 ──► 动画与交互(动起来) 样式(装修) ──┤ 特殊图形(造型) ─┘

建议顺序读,但 2.3 和 2.4 相对独立,可以按需跳。只有 2.5 会默认你已经会用子图、颜色和样式把单帧画好。

本章怎么读

五节最好按顺序走,但也可以按需跳。如果你时间紧、只想要"图变好看",优先读 2.2 和 2.3;如果你常做数据探索、要对比多组结果,优先读 2.1 和 2.4;动画与交互可以放到最后,它依赖前面几节的静态图功底。每一节都配了能直接跑的简短代码,建议边读边改参数,看图怎么跟着变。

多子图和颜色这两节,哪节更基础

多子图是"容器"层面的能力,颜色是"内容"层面的能力,两者不在一个维度,谈不上谁更基础。但本章的示例顺序是先布局后上色,因为先分区、再定调色,更符合实际的绘图流程。真要二选一先补,我建议先补颜色——单张图也会天天用到颜色,多子图则只有多图对比时才用得上。

这五节学完,和"会用 Seaborn"是什么关系

Seaborn 等高层库本质上是对 Matplotlib 的封装,它们的多子图、调色板、样式背后都是本章讲的这些机制。你把这五节吃透,再看 Seaborn 的接口会有一眼看到底的感觉:所谓 huepalettestyle,不过是把"颜色映射、样式表"这些概念换了个更顺手的壳。这也是本书不推荐跳过第 2 章直接上高层库的原因。

前置知识与后续延伸

  • 前置:需要第 1 章的 Figure 与 Axes 对象模型,以及基础绘图函数(折线、散点、柱状)。本章大量示例直接操作 ax 对象,如果还分不清 plt 接口和面向对象接口,先回去补 1.2。
  • 为后续铺垫:多子图的能力是第 3 章"用 NumPy、Pandas 做数据分析可视化"的常用手段;颜色映射的理解会直接影响第 3 章高级统计图形和第 4 章坐标变换;样式与美化的习惯是第 3 章可视化原则与最佳实践的前置;动画与交互则给第 4 章理解 Artist 对象与性能优化埋下伏笔。

⚠️ 常见坑:很多新手一上来就纠结"用 plt.subplot 还是 plt.subplots、colormap 用 viridis 还是 coolwarm",结果一张图调了半天还丑。本章想帮你建立的是判断力:先想清楚"这张图要表达什么",再回头选工具。
💡 关键直觉:把这五节当成装修五个工种——分区、上色、软装、造型、动效。装修前先画分区图,比上来就刷漆省事得多。画图也一样,先布局,再上色。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U