跳转至

15.3 数据处理与可视化:可视化

内容梗概

本课用较短篇幅快速过一遍 Matplotlib 的基本用法。老师沿用讲 Pandas 时的思路:先理解库如何看待对象——Matplotlib 把一张图拆解为 figure(图表背景)、axis(坐标轴)、line(折线)、图例、网格、title 等组成部分,再查各部分的具体 API。课上用最简单的例子演示了 subplots() 初始化图表、plot() 画折线、show() 显示窗口的完整流程,并预告下节课将结合爬虫数据做综合实例(同时也是作业)。

知识点详解

Matplotlib 的能力与学习思路(约 00:00 - 03:10)

  • Matplotlib 官方图表库能力非常强,各种类型的图基本都有(包括地图),做数据新闻完全够用;老师举例:有同学转专业到新闻/传播学,最后仍要用 Python 抓数据做数据新闻。
  • 官网每种图都附示例代码,点进去可以看到怎么写。
  • 学习思路与 Pandas 一致:先了解库用什么对象/类描述一张图,再了解这些类提供哪些操作方法,最后查具体 API。
  • Matplotlib 眼中一张图的组成:
  • figure:整个图表的背景/区域;
  • axis:坐标轴(x 轴、y 轴);
  • line:折线;此外还有图例(legend)、网格(grid)、标题(title)等。
  • 了解整体结构后,就可以用 figure、title 等对应的类去操作图表的各个部分。

Pandas 与 Matplotlib 的关系(约 03:12 - 03:40)

  • Pandas 基于 NumPy、Matplotlib、xlrd 等一系列第三方库开发,它本身也提供调用 Matplotlib 的画图接口(下节课实例会用 DataFrame 的 plot 接口直接画图)。
  • 注意(老师现场纠错,约 07:26):Pandas 提供 Matplotlib 的接口,但安装 Pandas 时**并不会自动装上 Matplotlib 库本身**,需要单独 pipenv install matplotlib。老师课上误以为自带,运行时才补装。

最简单的画图示例(约 03:43 - 08:30)

import matplotlib.pyplot as plt   # 从 pyplot 子模块导入,起别名 plt

fig, ax = plt.subplots()          # 一步同时生成 figure 和 axis,返回两个对象
ax.plot([1, 2, 3, 4], [1, 4, 2, 3])  # 在坐标轴上画数据,默认折线
plt.show()                        # 显示窗口
  • import matplotlib.pyplot as plt:pyplot 是 Matplotlib 的绘图子模块,起别名为了书写方便。
  • plt.subplots():一个函数同时创建 figure(图表区域)和 axis(坐标轴),返回两个结果——前者对应整张图表,后者对应坐标轴。
  • subplots(1, 2) 可传行列参数:一行两列即一个 figure 上并排两个子图(A 图、B 图,各有自己的坐标轴)。
  • ax.plot(x列表, y列表):给出 x 轴和 y 轴对应的点画线,默认是折线图。
  • plt.show() 必须调用:不写 show 代码运行完什么窗口都不会弹出——这是同学常犯的错误,务必注意。
  • 图表可通过保存 figure 存成 PNG 图片文件。

作业预告(约 08:50 - 09:19)

  • 下节课把爬虫 + Pandas + Matplotlib 整套用到爬取数据的分析与画图上,这也是**作业内容**。
  • 作业要求会提前发布在课件网站并在群里通知,可以自己先看文档提前写;觉得吃力的话下节课(最后一节课)更要来听。

示例与演示

  • 演示 1(官网图表库):浏览 Matplotlib 官方示例图库,展示图表种类丰富,点进示例可看代码。
  • 演示 2(最简折线图):现场写四行代码:导入 pyplot → subplots() 创建 figure 和 axis → ax.plot([1,2,3,4], [1,4,2,3]) 画折线 → plt.show() 显示。运行时发现没装 matplotlib,现场承认错误并 pipenv install 补装——顺带澄清"Pandas 提供接口 ≠ 自动安装 Matplotlib"。
  • 演示 3(保存图表):提到可将画好的 figure 保存为 PNG 图片。

重点与难点

  • plt.subplots() 一步返回 figure 和 axis 两个对象,理解其对应图表结构中的哪部分是后续操作的基础。
  • 必须 plt.show() 才能看到图,否则程序跑完无任何显示——最常见的新手问题。
  • Pandas 不附带安装 Matplotlib:只有接口,库要自己装(老师亲自踩坑演示)。
  • 学习任何新库的统一套路:先弄清它的对象模型(它把东西看成什么),再查具体 API。

关联内容

  • 紧承 15.2:Pandas 基于 Matplotlib 等库开发,DataFrame 的 plot 接口就是对 Matplotlib 的封装,下节课(15.4)实例会直接用它画图。
  • 与爬虫章节联动:作业是"爬虫抓数据 → Pandas 处理 → Matplotlib 画图"的完整链路。
  • 前置知识:15.2 的 Series/DataFrame 概念、pipenv 安装第三方库。