学习目标
按照课件要求,本章需要熟练掌握 Matplotlib 基础绘图函数,能够根据数据特征选择合适的图表类型。
基础图表
掌握绘制折线图,绘制柱形图或堆积柱形图
分布与构成
掌握绘制条形图或堆积条形图,绘制堆积面积图、直方图
比例与关联
掌握绘制饼图或圆环图,绘制散点图或气泡图
统计图表
掌握绘制箱形图,绘制雷达图,绘制误差棒图
绘制折线图
使用 pyplot 的 plot() 函数可以快速地绘制折线图。fmt 是一个字符串,用于定义图的基本属性——颜色(color)、点型(marker)、线型(linestyle),具体形式为 fmt = '[color][marker][line]'。plot() 会返回包含 Line2D 类对象(代表线条)的列表;绘制多条线条时,可以多次调用 plot(),也可以一次传入多组 (x, y)。
第2种 plt.plot(x1, y1, x2, y2)
第3种 plt.plot(arr[0], arr[1:])(传入二维数组)
实例 1 · 未来 15 天最高气温和最低气温
plot()绘制柱形图或堆积柱形图
使用 pyplot 的 bar() 函数绘制柱形图或堆积柱形图。通过 bottom 参数传值可以控制柱形的 y 值,使后绘制的柱形位于先绘制的柱形上方(堆积);通过 xerr / yerr 参数可为柱形添加误差棒。bar() 返回一个 BarContainer 类对象,可遍历获取每个柱形,也可访问 patches / errorbar 属性。
② 两组柱形:plt.bar(x+bar_width, y2, ...)
③ 堆积柱形:plt.bar(x, y2, bottom=y1)
④ 误差棒:yerr=error
实例 2 · 2013~2019 财年阿里巴巴淘宝和天猫平台的 GMV
bar()绘制条形图或堆积条形图
使用 pyplot 的 barh() 函数绘制条形图或堆积条形图。通过 left 参数传值控制条形的 x 值,使后绘制的条形位于先绘制的条形右方(堆积);通过 xerr / yerr 参数为条形添加误差棒。barh() 同样返回 BarContainer 类对象。
实例 3 · 各商品种类的网购替代率
barh()② 两组条形:plt.barh(y+bar_height, x2)
③ 堆积条形:plt.barh(y, x2, left=x1)
④ 误差棒:xerr=error
绘制堆积面积图
使用 pyplot 的 stackplot() 函数绘制堆积面积图。labels 表示每个填充区域的标签;baseline 表示计算基线的方法,包括 zero、sym、wiggle 和 weighted_wiggle——其中 zero 表示恒定零基线(简单的叠加图),sym 表示对称于零基线,wiggle 表示最小化平方斜率之和。
实例 4 · 物流公司物流费用统计
stackplot()绘制直方图
使用 pyplot 的 hist() 函数绘制直方图。bins 表示矩形条的数量;histtype 表示直方图的类型('bar'、'barstacked'、'step'、'stepfilled',默认 'bar');density 表示是否将该直方图转为概率密度形式。
实例 5 · 人脸识别的灰度直方图
hist()绘制饼图或圆环图
使用 pyplot 的 pie() 函数绘制饼图或圆环图。explode 表示各扇形离开圆心的距离;labels / autopct 表示扇形的标签 / 数值标记;pctdistance 表示数值标记距圆心的半径比例;startangle 表示起始角度;radius 表示扇形半径;wedgeprops 表示控制扇形属性的字典(如 width 可绘制圆环图)。
实例 6 · 支付宝月账单报告
pie()绘制散点图或气泡图
使用 pyplot 的 scatter() 函数绘制散点图或气泡图。s 表示点的大小(气泡图的关键,传入面积数组);c 表示点的颜色;marker 表示点的形状;cmap 表示颜色映射表;linewidths / edgecolors 表示点的线条宽度 / 边缘颜色。
实例 7 · 汽车速度与制动距离的关系
scatter()绘制箱形图
使用 pyplot 的 boxplot() 函数绘制箱形图。meanline 表示是否用横跨箱体的线条标出中位数;showcaps 表示是否显示箱体顶部和底部的横线;showbox / showfliers 表示是否显示箱体 / 异常值;labels 表示箱形图的标签;boxprops 表示控制箱体属性的字典。
实例 8 · 2017 年和 2018 年全国发电量统计
boxplot()绘制雷达图
使用 pyplot 的 polar() 函数绘制雷达图:theta 表示每个标记所在射线的角度,r 表示每个标记到圆心的距离。
实例 9 · 霍兰德职业兴趣测试
polar()绘制误差棒图
使用 pyplot 的 errorbar() 函数绘制误差棒图。xerr / yerr 表示数据的误差范围;fmt 表示数据点的标记样式和连接线样式;ecolor 表示误差棒线条的颜色;capsize / capthick 表示误差棒边界横杠的大小 / 厚度。
实例 10 · 4 个树种不同季节的细根生物量
errorbar()本章小结
📊 十类图表 · 一网打尽
本章主要介绍了如何使用 matplotlib 库的绘图函数绘制简单的图表,包括折线图、柱形图或堆积柱形图、条形图或堆积条形图、堆积面积图、直方图、饼图或圆环图、散点图或气泡图、箱形图、雷达图、误差棒图。通过学习本章内容,希望大家能够掌握绘图函数的用法,可以使用这些函数绘制简单的图表,为后续的学习打好扎实的基础。
未来 15 天最高气温和最低气温
折线图 · 天气预报
2013~2019 财年阿里平台 GMV
柱形图 · 电商发展
各商品种类的网购替代率
条形图 · 消费习惯
物流公司物流费用统计
堆积面积图 · 行业趋势
人脸识别的灰度直方图
直方图 · 生物识别
支付宝月账单报告
饼图 · 移动支付
汽车速度与制动距离的关系
散点图 · 交通安全
2017/2018 年全国发电量统计
箱形图 · 能源统计
霍兰德职业兴趣测试
雷达图 · 职业测评
4 个树种不同季节的细根生物量
误差棒图 · 植物研究