在數(shù)據(jù)可視化中,坐標(biāo)系是最基本的。在一張圖紙上,只要建立了坐標(biāo)系,圖中的任何一個點就可以用數(shù)學(xué)方式描述清楚了。
一般,小學(xué)學(xué)習(xí)了數(shù)軸,初中就開始學(xué)習(xí)了二維直角坐標(biāo)系。但是,那僅僅是數(shù)學(xué)中的認識,現(xiàn)在要使用 Matplotlib 與已有的數(shù)學(xué)知識結(jié)合,對坐標(biāo)系有新的認識。
要很耐心地閱讀以下內(nèi)容,即便是“溫故”,目的還是“知新”。
通常所說的坐標(biāo)系,也稱為平面直角坐標(biāo)系、正交坐標(biāo)系、笛卡爾坐標(biāo)系,英文:Cartesian coordinate system,形狀如下圖所示。
這種樣式的坐標(biāo)系,最早是由法國數(shù)學(xué)家勒內(nèi)·笛卡爾(René Descartes)于 1637 年提出來的。它的組成部分包括以下幾點。
x 軸(x-axis):水平的坐標(biāo)軸,也稱為“橫軸”。這是條有方向的直線,箭頭所指方向表示“正方向”,與之相反的為“負方向”。
y 軸(y-axis):豎直的坐標(biāo)軸,也稱為“縱軸”。除了方向與 x 軸垂直之外,別的沒有不同。
正方向:不論是 x 軸還是 y 軸,都是以箭頭所指的方向為正方向。上圖中所標(biāo)示的正方向,是數(shù)學(xué)中的習(xí)慣。但是,在真實的問題中,可能會有變化。比如,在物理學(xué)中,會以物體的運動方向或者某個力的方向為其中一個坐標(biāo)軸的正方向;在計算機圖形中,還會以向下為 y 軸的正方向。
原點(origin):x、y 軸的交點。通常用字母 O 標(biāo)記,一般情況下,原點是數(shù)字 0。但在實際問題中,原點不一定都是從 0 開始的,有可能對于不同的坐標(biāo)軸,值還不一樣。
-
刻度:觀察上面的圖,坐標(biāo)軸上有刻度,每個刻度,應(yīng)該包含以下兩部分。
- 刻線:在坐標(biāo)軸上的短線。
- 標(biāo)示:刻線旁邊的數(shù)字,表示該刻線的數(shù)量。但是,不是所有的刻線都必須有標(biāo)示。上圖中就顯示出來了,每隔 5 個單位有一個標(biāo)示。為了區(qū)分,還可以把這些有標(biāo)示的刻線稱為“主刻線”(此時的刻線和標(biāo)示合稱為“主刻度”),沒有標(biāo)示的刻線則稱為“副刻線”。
坐標(biāo):以 (x, y) 的方式表示坐標(biāo)系中的一個點。例如,上圖中點 P,坐標(biāo)為 (3, 5),即該點在 x 軸的投影點對應(yīng)著 3,在 y 軸上的投影點對應(yīng)著 5。
對通常的坐標(biāo)系有了認識之后,接下來,就是研習(xí)一番 Matplotlib 如何操控坐標(biāo)系了。
1.2.1 設(shè)置坐標(biāo)網(wǎng)格
坐標(biāo)網(wǎng)格,是坐標(biāo)系的輔助設(shè)備,主要是為了幫助人更直觀地觀察。
注意:以下代碼是在 Jupyter 中執(zhí)行,沒有在最后使用 plt.show()。如果使用其他編輯器,最終以程序方式執(zhí)行,請讀者自行增加此句。
%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') # ①
運行結(jié)果:
在上述代碼中,ax 引用了坐標(biāo)系對象,它具有一個名為 grid 的方法,使用這個方法能夠?qū)崿F(xiàn)對坐標(biāo)網(wǎng)格的設(shè)置。它的完整格式是: