MATPLOTLIB 教材课件 · 章节可视化展示

第2章 使用 Matplotlib 绘制简单图表

将教材课件中的 10 类基础图形与 10 个经典实例重构为交互式可视化
涵盖折线、柱形、条形、堆积面积、直方、饼图、散点气泡、箱形、雷达、误差棒

01

掌握绘制折线图、柱形图或堆积柱形图

02

掌握绘制条形图或堆积条形图、堆积面积图、直方图

03

掌握绘制饼图或圆环图、散点图或气泡图

04

掌握绘制箱形图、雷达图、误差棒图

API 语法速查

教材 2.1—2.10 节核心绘图函数签名一览(pyplot 模块)

plt.plot()
plot(x, y, fmt, scalex=True, scaley=True, data=None, label=None, ...)
fmt = '[color][marker][line]' 定义颜色、点型、线型;返回 Line2D 对象列表
plt.bar()
bar(x, height, width=0.8, bottom=None, align='center', tick_label=None, xerr=None, yerr=None, ...)
bottom 控制堆积;xerr / yerr 添加误差棒;返回 BarContainer 容器
plt.barh()
barh(y, width, height=0.8, left=None, align='center', *, **kwargs)
left 控制水平堆积起点,用于绘制堆积条形图
plt.stackplot()
stackplot(x, y, labels=(), baseline='zero', data=None, ...)
baseline 可选 'zero' / 'sym' / 'wiggle' / 'weighted_wiggle' 流式基线
plt.hist()
hist(x, bins=None, range=None, density=None, weights=None, bottom=None, ...)
bins 指定矩形条数量;histtype 可选 'bar' / 'stepfilled' 等
plt.pie()
pie(x, explode=None, labels=None, autopct=None, pctdistance=0.6, startangle=None, ...)
wedgeprops={'width': 0.7} 可绘制圆环图;explode 突出指定扇区
plt.scatter()
scatter(x, y, s=None, c=None, marker=None, cmap=None, linewidths=None, edgecolors=None, ...)
s 控制点的大小,传入数组即得气泡图
plt.boxplot()
boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, ...)
vert=False 横向摆放;patch_artist 填充箱体;showfliers 控制异常值
plt.polar()
polar(theta, r, **kwargs)
theta 角度、r 半径;配合 thetagrids() 设置极坐标标签、fill() 填充
plt.errorbar()
errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, ...)
capsize / capthick 控制误差棒端盖大小与线条粗细
2.1

实例1 · 未来 15 天最高气温和最低气温 (plot 折线图)

plt.plot()多线条折线

日期作为 x 轴、最高/最低气温两列作为 y 轴数据,使用 plot() 绘制两条折线,观察 4—18 日气温先降后升的趋势与昼夜温差变化。

2.2

实例2 · 2013—2019 财年阿里巴巴淘宝和天猫平台 GMV (bar 柱形图)

plt.bar()宽度 0.5堆积/误差棒

财年列作 x 轴、GMV 列作 y 轴,柱宽 0.5;2019 财年 GMV 突破 60000 亿元。下方同时演示教材基础示例:bottom 堆积与 yerr 误差棒。

基础示例 · 多组柱形(x + bar_width)
基础示例 · 堆积柱形 + 误差棒(bottom / yerr)
2.3

实例3 · 各商品种类的网购替代率 (barh 条形图)

plt.barh()高度 0.618 类商品

商品种类作 y 轴刻度标签、替代率作 x 轴,条形高度 0.6。家政、家教、保姆等生活服务替代率最高(95.9%),工艺品、收藏品最低(67%)。

2.4

实例4 · 物流公司物流费用统计 (stackplot 堆积面积图)

plt.stackplot()A/B/C 公司

月份作 x 轴刻度标签,A、B、C 三家公司的物流费用作 y 轴数据。左图为默认 baseline='zero' 堆积,右图模拟 'sym' 流式基线,呈现各线路费用占比与走势。

baseline = 'zero'(默认堆积)
baseline = 'sym'(流式基线)
2.5

实例5 · 人脸识别的灰度直方图 (hist 直方图)

plt.hist()bins=2510000 样本

以 10000 个随机数模拟人脸图像灰度值,使用 hist() 绘制包含 25 个矩形条的灰度直方图,分布区间约 -4 ~ 4,呈钟形正态特征。

2.6

实例6 · 支付宝月账单报告 (pie 饼图 / 圆环图)

plt.pie()shadow 阴影startangle=90

各分类金额占总支出 3000 元的比例作饼图数据,起始角 90°、显示阴影、"其他"类通过 explode 离开圆心 0.3;右侧为教材圆环图示例(wedgeprops width=0.7)。

实例 · 支付宝月账单(explode + shadow)
基础示例 · 圆环图(wedgeprops='width': 0.7)
2.7

实例7 · 汽车速度与制动距离的关系 (scatter 散点图 / 气泡图)

plt.scatter()s 气泡

车速作 x 轴、制动距离作 y 轴——车速增加 1 倍,制动距离增大至近 4 倍,样本点沿二次曲线分布;右侧演示 s=area 气泡图基础示例。

实例 · 车速 vs 制动距离(散点)
基础示例 · 气泡图(s = (30·rand)²)
2.8

实例8 · 2017 年和 2018 年全国发电量统计 (boxplot 箱形图)

plt.boxplot()vert=False宽度 0.5

发电量数据横向摆放(vert=False)、箱体宽度 0.5、填充颜色并显示中位数与异常值:2017 年四分位距约 4800~5300 亿千瓦时,2018 年约 5250~5700 亿千瓦时。

2.9

实例9 · 霍兰德职业兴趣测试 (polar 雷达图)

plt.polar()thetagrids()fill()

表头一行作雷达图标签(研究型 I、艺术型 A、社会型 S、企业型 E、传统型 C、现实型 R),其余 6 行作数据:用户 1—6 各自兴趣倾向轮廓差异显著,如用户 3 艺术型 0.89 最高、用户 6 传统型 0.92 突出。

2.10

实例10 · 4 个树种不同季节的细根生物量 (errorbar 误差棒图)

plt.errorbar()马尾松/樟树/杉木/桂花

季节作 x 轴刻度标签,马尾松、樟树、杉木、桂花四个树种的细根生物量作 y 轴数据并叠加误差棒(capsize=3, elinewidth=2):杉木生物量最高(约 4.65—4.99 g),樟树各季节差异最小。

2.11 本章小结 —— 本章主要介绍了如何使用 matplotlib 库的绘图函数绘制简单的图表,包括折线图、柱形图或堆积柱形图、条形图或堆积条形图、堆积面积图、直方图、饼图或圆环图、散点图或气泡图、箱形图、雷达图、误差棒图。通过学习本章的内容,希望大家能够掌握绘图函数的用法,可以使用这些函数绘制简单的图表,为后续的学习打好扎实的基础。