根据列绘制散点图
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 48 课,共 60 课。
电池越大,续航里程就越长吗?看一眼两列数据的散点图就能找到答案,每行数据对应一个点:
列会替代列表,因此 ax.scatter 接收两列:
bikes = pd.DataFrame({
"battery_wh": [250, 300, 400, 500, 500, 625, 750],
"range_km": [35, 45, 60, 65, 75, 95, 110],
})
fig, ax = plt.subplots()
ax.scatter(bikes["battery_wh"], bikes["range_km"])
ax.set_title("E-bike Range")
ax.set_xlabel("Battery (Wh)")
ax.set_ylabel("Range (km)")
plt.show()点向右上方分布,表示这些列会一起增长:这是模型可以学习的关系。如果点杂乱无章地分布,就表示没有关系。
ax.scatter 看不到列名,因此轴标签需要由你来设置。
挑战
中等公园护林员测量了公园里的 12 棵树,并记录在 trees.csv 中:age_years、trunk_cm 和 height_m。哪个变量与树高相关,是树龄还是树干宽度?起始代码会将这两个名称中的一个读入 column,并设置好图表。
- 每棵树画一个点:横轴使用该列,纵轴使用
height_m。 - 用该列的名称标记 x 轴。
你的图表应该和下面这个类似,它展示了另一座公园的 crown_m:
Coddy 会分别用这两列运行你的代码,并描述每张图表。比较它们:点分布得更紧密、向上延伸的那一组能回答这个问题。
亲手试试
import pandas as pd
import matplotlib.pyplot as plt
trees = pd.read_csv("trees.csv")
column = input()
fig, ax = plt.subplots()
ax.set_title("Tree Size")
ax.set_ylabel("Height (m)")
# 在下方编写你的代码
# 不要修改下面这行代码
plt.show()
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器