在数据可视化中,坐标系是最基本的。在一张图纸上,只要建立了坐标系,图中的任何一个点就可以用数学方式描述清楚了。

一般,小学学习了数轴,初中就开始学习了二维直角坐标系。但是,那仅仅是数学中的认识,现在要使用 Matplotlib 与已有的数学知识结合,对坐标系有新的认识。

要很耐心地阅读以下内容,即便是“温故”,目的还是“知新”。

通常所说的坐标系,也称为平面直角坐标系、正交坐标系、笛卡尔坐标系,英文:Cartesian coordinate system,形状如下图所示。

image

这种样式的坐标系,最早是由法国数学家勒内·笛卡尔(René Descartes)于 1637 年提出来的。它的组成部分包括以下几点。

x 轴(x-axis):水平的坐标轴,也称为“横轴”。这是条有方向的直线,箭头所指方向表示“正方向”,与之相反的为“负方向”。

y 轴(y-axis):竖直的坐标轴,也称为“纵轴”。除了方向与 x 轴垂直之外,别的没有不同。

正方向:不论是 x 轴还是 y 轴,都是以箭头所指的方向为正方向。上图中所标示的正方向,是数学中的习惯。但是,在真实的问题中,可能会有变化。比如,在物理学中,会以物体的运动方向或者某个力的方向为其中一个坐标轴的正方向;在计算机图形中,还会以向下为 y 轴的正方向。

原点(origin):x、y 轴的交点。通常用字母 O 标记,一般情况下,原点是数字 0。但在实际问题中,原点不一定都是从 0 开始的,有可能对于不同的坐标轴,值还不一样。

刻度:观察上面的图,坐标轴上有刻度,每个刻度,应该包含以下两部分。

刻线:在坐标轴上的短线。

标示:刻线旁边的数字,表示该刻线的数量。但是,不是所有的刻线都必须有标示。上图中就显示出来了,每隔 5 个单位有一个标示。为了区分,还可以把这些有标示的刻线称为“主刻线”(此时的刻线和标示合称为“主刻度”),没有标示的刻线则称为“副刻线”。

坐标:以 (x, y) 的方式表示坐标系中的一个点。例如,上图中点 P,坐标为 (3, 5),即该点在 x 轴的投影点对应着 3,在 y 轴上的投影点对应着 5。

对通常的坐标系有了认识之后,接下来,就是研习一番 Matplotlib 如何操控坐标系了。

1.2.1 设置坐标网格

坐标网格,是坐标系的辅助设备,主要是为了帮助人更直观地观察。

注意:以下代码是在 Jupyter 中执行,没有在最后使用 plt.show()。如果使用其他编辑器,最终以程序方式执行,请读者自行增加此句。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.02)
y = np.exp(-x) * np.cos(2*np.pi*x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid(color='blue') # ①

运行结果:

image

在上述代码中,ax 引用了坐标系对象,它具有一个名为 grid 的方法,使用这个方法能够实现对坐标网格的设置。它的完整格式是: