结业考核
这是本书过程化考核的最后一环,由两部分组成:综合项目与结业测验。全部完成后,你应当能脱离任何 AI 工具独立用 Matplotlib 绘制并解读数据图形,并读懂、验证 AI 生成的代码——这正是本书的两个核心目标。
一、综合项目
从下面三个主题中任选一个,独立完成。也可以自拟同等难度的主题,但必须先按 12.6 的审查清单自评。
主题 A:天气数据可视化周报
- 生成或读入 3 个城市 30 天的气温、降雨数据(自行生成,固定种子保证可复现)。
- 用
subplots或GridSpec组织一页多图:气温走势(折线 + 区间填充)、降雨量(柱状)、分布(箱线图)。 - 每张子图有标题、轴标签(带单位)、必要的图例;整页有总标题。
- 中文字体配置正确,图内无方框;输出 PNG(dpi≥150)与 PDF 各一份。
主题 B:销售数据仪表盘
- 生成 12 个月 4 个品类的销售额数据。
- 用
GridSpec做「上大下小」布局:横跨整行的逐月趋势主图 + 品类占比(饼图)+ 品类对比(柱状)。 - 主图标注年度峰值(用
annotate),fill_between强调趋势。 - 配色统一(建议用一个品牌色板),图例与标签齐全,
tight_layout收尾。
主题 C:数据分布对比分析
- 生成或读入 4 组不同分布的样本(如正态、均匀、指数、对数正态,固定种子)。
- 用箱线图与直方图两种视角对比四组分布,说明各组在均值、离散度、偏斜上的差异。
- 用
style.context给其中一组图换主题,对比可读性。 - 输出一页对比图 + 一段 150 字以内的解读文字。
统一验收标准(全部满足才算通过):
| 标准 | 说明 |
|---|---|
| 可运行 | 按 README 或注释说明可一键运行,无语法错误 |
| 中文正常 | 中文字体配置正确,图内无方框 |
| 有标签 | 每张图都有标题、轴标签(带单位)、必要的图例 |
| 图对信息 | 图表类型与数据形态匹配,没有「用错图」 |
| 结构清晰 | 用函数组织代码,没有大段重复 |
| 布局得当 | 多图用子图/GridSpec 组织,无重叠 |
| 保存合理 | 输出 PNG(dpi≥150)或 PDF,边距合适 |
| 信息诚实 | 数值真实、坐标轴没有被误导性截断 |
二、结业测验
覆盖第 1~12 章知识点,共 15 题,答对 12 题(80%)以上视为通过。
plt.savefig是哪个对象的方法?(第 10 章)- A.
Axes - B.
Figure - C.
Tick - D.
pyplot
- A.
fig, axes = plt.subplots(1, 2)之后,type(axes)是?(第 2 章)- A.
Axes - B.
Figure - C.
numpy.ndarray - D.
list
- A.
- 控制折线线宽的关键字是?(第 3 章)
- A.
width - B.
linewidth - C.
thickness - D.
size
- A.
- 给散点图加颜色条,正确写法是?(第 4 章)
- A.
ax.colorbar() - B.
fig.colorbar(sc, ax=ax) - C.
plt.color(sc) - D.
ax.legend()
- A.
- 画连续数据分布的直方图用?(第 5 章)
- A.
ax.bar - B.
ax.hist - C.
ax.pie - D.
ax.plot
- A.
- 想对比多组数据的分布形状(含偏斜),首选?(第 6 章)
- A. 折线图
- B. 小提琴图
- C. 饼图
- D. 散点图
- Matplotlib 3.9 起,
boxplot里给各组命名的参数是?(第 6 章)- A.
labels - B.
tick_labels - C.
names - D.
legend
- A.
- 让图例自动选一个与数据重叠最少的位置,
loc=填?(第 7 章)- A.
"best" - B.
"auto" - C.
"smart" - D.
"none"
- A.
- 给图加带箭头的注释用?(第 8 章)
- A.
ax.text - B.
ax.annotate - C.
ax.comment - D.
ax.arrow
- A.
- 多子图元素重叠时,常用修复方法?(第 9 章)
- A.
fig.tight_layout() - B.
fig.auto_space() - C.
plt.overlap(False) - D.
ax.set_visible(True)
- A.
- 放大多少倍都清晰的格式是?(第 10 章)
- A. PNG
- B. JPG
- C. SVG
- D. BMP
- 只让某一段代码用某个主题,用?(第 11 章)
- A.
plt.style.use - B.
with plt.style.context("ggplot"): - C.
plt.theme_switch() - D.
plt.style.push()
- A.
- 阅读 AI 生成的 Matplotlib 代码,正确的态度是?(第 12 章)
- A. 直接使用并信任
- B. 审查、验证、改进后再使用
- C. 一律不用
- D. 只看注释
- 并列柱状图让两组柱子并排的关键是?(第 5 章)
- A. 修改柱宽
- B. 给 x 位置加偏移
- C. 加图例
- D. 用
bottom
- 网页图表常用的 dpi 是?(第 10 章)
- A. 72
- B. 150
- C. 600
- D. 1000
三、结业评审
- 综合项目:对照验收标准逐条自评;如果可能,请另一位同学或老师运行你的程序。
- 结业测验:15 题答对 12 题以上。
- 两项都通过,即完成本书全部学习目标。
结业后的下一步
本书覆盖的是 Matplotlib 核心。之后可以按兴趣深入:
- 更高级的可视化库:
seaborn(基于 Matplotlib 的统计绘图)、plotly(交互式图表) - 数据分析:
pandas内置的df.plot(快速绘图)、pandas-profiling(自动报告) - 地理与仪表盘:
geopandas(地图)、dash/streamlit(数据应用) - 配色与字体:
matplotlib官方 颜色示例 与 样式示例
无论选哪个方向,记住本书的两条原则:用对图表讲清数据,读懂并验证别人(包括 AI)写的代码。
