散点图 Scatter Plot

我们可以使用 matplotlib 库绘制数据,绘制数据通常有助于我们建立对数据的直觉。

首先,我们需要导入 matplotlib。一般我们会为他取一个别名 plt,方便后续调用

import matplotlib.pyplot as plt

接下来,还是使用 titanic.csv,我们用 scatter 函数来绘制数据图,scatter 函数的第一个参数是 x 轴(横向 / 水平方向),第二个参数是 y 轴(纵向 / 垂直方向)。下面,我们将在 x 轴上绘制年龄,在 y 轴上绘制票价。为了更容易解释,我们可以添加 x 和 y 标签。

plt.scatter(df['Age'], df['Fare'])
# 添加标签
plt.xlabel('Age')
plt.ylabel('Fare')

我们还能为散点图进行着色,这将为三个舱位等级分配不同的颜色。我们添加了 c 参数,并给他一个 Pandas Series Pclass。在这种情况下,我们的 Pandas Series 有三种值(1st, 2nd 和 3rd 类)因此我们将看到每个数据点都能获得对应的颜色

plt.scatter(df['Age'], df['Fare'], c=df['Pclass'])

散点图用于在图表上显示数据的所有值。为了获得我们数据的视觉表示,我们必须将数据限制在两个特征上。

散点图练习

现在,编写一段代码创建一个散点图。要求 Pclass 在 y 轴、Fare 在 x 轴,用颜色表明他们是否幸存。然后在 xy 轴上写上标签

plt.scatter(df['Fare'], df['Pclass'], c=df['Survived'])
plt.xlabel('Fare')
plt.ylabel('Pclass')

画线 Line

既然我们可以在图上放置单个数据点,让我们看看如何绘制线。plot 函数正是用于此目的。以下代码绘制了一条线,大致分离了一等舱和二、三等舱。通过用眼睛观察,我们将线放在 (0, 85)(80,5) 之间。我们的语法下有一个 x 值列表和一个 y 值列表。

plt.plot([0, 80], [85, 5])

你可以看到黄色(三等舱)和绿色(二等舱)的点大多在线下,而紫色(一等舱)的点大多在线上。虽然我们是手动完成的,但在下一个模块中,我们将学习如何通过算法完成这个任务。

在 matplotlib 中,我们使用 scatter 函数创建散点图,使用 plot 函数创建线。

画线练习

我们需要画一条直线从 (10, 0) 到 (100, 3),代码应该怎么写?

plt.plot([10, 100], [0, 3])

深入记忆

要知道,plot([x], [y]) 函数的参数是两个列表,也就是说,假设我需要在三个点之间连线:(0, 85), (68, 50), (80, 5),需要先将坐标值的 x 轴全部取出来变成数组 [0, 68, 80],再将坐标值的 y 轴全部取出来变成数组 [85, 50, 5]。调用函数:

plt.plot([0, 68, 80], [85, 50, 5])