折线图
使用 pyplot 的 plot() 函数可快速绘制折线图。可选参数 fmt 以
'[color][marker][line]'
的形式定义颜色、点型与线型;函数返回包含 Line2D 对象的列表。
语 法
plot(x, y, fmt, scalex=True, scaley=True, data=None, label=None, *args, **kwargs)# 实例1:未来15天最高气温和最低气温 plt.plot(x, y_max) # 最高气温 plt.plot(x, y_min) # 最低气温 plt.show()
数据来源:表 2-1 北京市未来15天的最高气温和最低气温(单位:℃)
实例 1 · 未来 15 天最高气温和最低气温
将日期列作为 x 轴数据,最高气温与最低气温两列作为 y 轴数据。
柱形图 / 堆积柱形图
使用 bar() 函数绘制柱形图,返回 BarContainer 对象;通过 bottom 参数可绘制堆积柱形图, 通过 xerr、yerr 参数可为柱形添加误差棒。
语 法
bar(x, height, width=0.8, bottom=None, align='center', tick_label=None, xerr=None, yerr=None, **kwargs)# 实例2:柱形宽度 0.5 plt.bar(x, gmv, tick_label=fiscal_year, width=0.5)
数据来源:表 2-2 2013—2019财年淘宝和天猫平台的 GMV(单位:亿元)
实例 2 · 2013~2019 财年阿里巴巴淘宝和天猫平台的 GMV
财年列作为 x 轴数据,GMV 列作为 y 轴数据,柱形宽度为 0.5。
条形图 / 堆积条形图
使用 barh() 函数绘制条形图,通过 left 参数可绘制堆积条形图, 通过 xerr、yerr 参数可为条形添加误差棒。
语 法
barh(y, width, height=0.8, left=None, align='center', *, **kwargs)# 实例3:条形高度 0.6 plt.barh(y, rate, tick_label=kinds, height=0.6)
数据来源:表 2-3 各商品种类的网购替代率(部分),替代率已换算为 0~1 的比例
实例 3 · 各商品种类的网购替代率
商品种类作为 y 轴刻度标签,替代率作为 x 轴数据,条形高度为 0.6。
堆积面积图
使用 stackplot() 函数绘制堆积面积图,多个序列自下而上堆叠,可直观呈现总量与各部分构成的变化。
语 法
stackplot(x, y, labels=(), baseline='zero', data=None, *args, **kwargs)# 实例4:三家物流公司的物流费用 plt.stackplot(month, A, B, C, labels=['A公司', 'B公司', 'C公司'])
数据来源:表 2-4 A、B、C 物流公司物流费用统计(单位:万元)
实例 4 · 物流公司物流费用统计
月份作为 x 轴刻度标签,A、B、C 三家公司费用作为 y 轴数据堆叠展示。
直方图
使用 hist() 函数绘制直方图,bins 指定矩形条数量,用于观察数据的分布规律(如正态分布形态)。
语 法
hist(x, bins=None, range=None, density=None, weights=None, bottom=None, **kwargs)# 实例5:10000个随机数作为灰度值 random_state = np.random.RandomState(19680801) radom_x = random_state.randn(10000) # 绘制包含25个矩形条的直方图 plt.hist(radom_x, bins=25)
数据来源:教材实例5,RandomState(19680801).randn(10000),bins=25;网页端用同种子伪随机数复现同一分布
实例 5 · 人脸识别的灰度直方图
以一组 10000 个随机数作为人脸图像的灰度值,绘制包含 25 个矩形条的直方图。
饼图 / 圆环图
使用 pie() 函数绘制饼图或圆环图:explode 使扇区离开圆心,autopct 显示百分比, startangle 设置起始角度,shadow 显示阴影,wedgeprops 可绘制圆环图。
语 法
pie(x, explode=None, labels=None, autopct=None, pctdistance=0.6, startangle=None, shadow=False, *, data=None)# 实例6:起始角度90,占比最大分类离开圆心0.1 plt.pie(amount, labels=kinds, explode=explode, autopct='%3.1f%%', startangle=90, shadow=True)
数据来源:表 2-5 用户A某月使用支付宝的消费明细(单位:元,总支出 3000 元)
实例 6 · 支付宝月账单报告
分类列作为饼图标签,各分类金额与总支出金额的比例作为饼图数据;起始角度 90°,显示阴影。
散点图 / 气泡图
使用 scatter() 函数绘制散点图或气泡图:s 控制点大小(气泡图),c 控制颜色, cmap 指定颜色映射。车速增加 1 倍,制动距离将增大至近 4 倍。
语 法
scatter(x, y, s=None, c=None, marker=None, cmap=None, linewidths=None, edgecolors=None, *, **kwargs)# 实例7:车速与制动距离 plt.scatter(speed, distance, s=60)
数据来源:表 2-6 车速与制动距离的关系(车速 km/h,制动距离 m)
实例 7 · 汽车速度与制动距离的关系
车速列作为 x 轴数据,制动距离列作为 y 轴数据。
箱形图
使用 boxplot() 函数绘制箱形图,展示四分位数、中位数与异常值;vert=False 横向摆放, widths 设置箱体宽度,patch_artist 填充颜色,showfliers 控制异常值显示。
语 法
boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, *, data=None)# 实例8:横向摆放,箱体宽度0.5,显示中位数与异常值 plt.boxplot([g2017, g2018], vert=False, widths=0.5, patch_artist=True, showmeans=True, showfliers=True)
数据来源:表 2-7 2017年和2018年全国发电量统计(单位:亿千瓦·时)
实例 8 · 2017 年和 2018 年全国发电量统计
发电量作为 x 轴数据,2017 年、2018 年作为 y 轴刻度标签;横向摆放,箱体宽度 0.5。
雷达图
使用 polar() 函数绘制雷达图:theta 为角度(弧度制),r 为该角度对应的半径; 绘制多条闭合曲线即可对比多位用户的多维特征。
语 法
polar(theta, r, **kwargs)# 实例9:霍兰德职业兴趣测试,6个维度 theta = np.linspace(0, 2*np.pi, 6, endpoint=False) theta = np.concatenate((theta, [theta[0]])) # 首尾闭合 plt.polar(theta, scores)
数据来源:表 2-8 6名用户霍兰德职业兴趣测试的结果(研究型/艺术型/社会型/企业型/传统型/现实型)
实例 9 · 霍兰德职业兴趣测试
标题一行的 6 个维度作为雷达图标签,其余 6 行作为 6 位用户的测试数据。
误差棒图
使用 errorbar() 函数绘制误差棒图:yerr / xerr 指定误差范围, capsize 设置误差棒横杠宽度,capthick 设置横杠厚度。
语 法
errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, *, data=None, **kwargs)# 实例10:4个树种不同季节的细根生物量 plt.errorbar(x, y, yerr=err, capsize=3, capthick=2)
数据来源:表 2-9 4个树种不同季节的细根生物量(单位:g,均值±标准差)
实例 10 · 4 个树种不同季节的细根生物量
季节作为 x 轴刻度标签,4 个树种的数据作为 y 轴数据,并绘制误差棒。