在一张图中展示多个图表
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 28 课,共 60 课。
一辆餐车记录顾客数量和他们的等待时间。不同单位的数据用两张图并排显示在同一个图表中,效果最好:
忙碌的日子,漫长的等待:一眼就能看出情况。plt.subplots(1, 2) 会创建 1 行 2 张图表,左侧是 axs[0],右侧是 axs[1]:
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]
customers = [60, 85, 70, 120, 150]
wait = [4, 6, 5, 9, 12]
fig, axs = plt.subplots(1, 2)
axs[0].bar(days, customers)
axs[0].set_title("Customers")
axs[1].plot(days, wait)
axs[1].set_title("Wait (min)")
plt.show()每个都是一个完整的图表,包含你熟悉的方法。行会优先排列,像这样创建形状:plt.subplots(2, 1) 会将它们垂直堆叠。
挑战
中等一位徒步者记录了 8 次徒步:行走的距离存放在 km 中,所用时间存放在 hours 中。起始代码中的 label(ax, title, xlabel, ylabel) 函数可以为一张图命名。并排绘制两张图:
- 左图:按
hikes中的徒步编号(横轴)绘制km的折线(纵轴)。 - 右图:每次徒步对应一个点,距离为横轴,时间为纵轴。
- 使用下面给出的文本,通过一次
label调用为每张图命名。
你的图应该和下面这张相似,它来自另一位徒步者的记录:
文本如下:左图使用 Distance per Hike、Hike、Distance (km);右图使用 Time vs Distance、Distance (km)、Time (h)。你的程序不会打印任何内容。
亲手试试
import numpy as np
import matplotlib.pyplot as plt
hikes = np.arange(1, 9)
km = np.array([8.0, 12.5, 6.0, 15.0, 10.0, 18.5, 9.5, 14.0])
hours = np.array([2.5, 4.0, 2.0, 5.0, 3.5, 6.5, 3.0, 4.5])
# 为一张图表设置标题和坐标轴标签(不返回任何值)
def label(ax, title, xlabel, ylabel):
ax.set_title(title)
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
# 在下方编写你的代码
# 不要修改下面这一行
plt.show()
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器