Datawhale 第20期 資料視覺化Task1

一條寒魚發表於2020-12-14

Matplotlib的影像是畫在figure(如windows,jupyter窗體)上的,每一個figure又包含了一個或多個axes(一個可以指定座標系的子區域)。最簡單的建立figure以及axes的方式是通過pyplot.subplots命令,建立axes以後,可以使用Axes.plot繪製最簡易的折線圖。

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots() # 建立一個包含一個axes的figure
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) # 繪製影像
output_6_1

和MATLAB命令類似,你還可以通過一種更簡單的方式繪製影像,matplotlib.pyplot方法能夠直接在當前axes上繪製影像,如果使用者未指定axes,matplotlib會幫你自動建立一個。所以上面的例子也可以簡化為以下這一行程式碼。

plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
output_6_1

三、Figure的組成
現在我們來深入看一下figure的組成。通過一張figure解剖圖,我們可以看到一個完整的matplotlib影像通常會包括以下四個層級,這些層級也被稱為容器(container),下一節會詳細介紹。在matplotlib的世界中,我們將通過各種命令方法來操縱影像中的每一個部分,從而達到資料視覺化的最終效果,一副完整的影像實際上是各類子元素的集合。

Figure:頂層級,用來容納所有繪圖元素

Axes:matplotlib宇宙的核心,容納了大量元素用來構造一幅幅子圖,一個figure可以由一個或多個子圖組成

Axis:axes的下屬層級,用於處理所有和座標軸,網格有關的元素

Tick:axis的下屬層級,用來處理所有和刻度有關的元素

四、兩種繪圖介面
matplotlib提供了兩種最常用的繪圖介面

顯式建立figure和axes,在上面呼叫繪圖方法,也被稱為OO模式(object-oriented style)

依賴pyplot自動建立figure和axes,並繪圖

使用第一種繪圖介面,是這樣的:

x = np.linspace(0, 2, 100)

fig, ax = plt.subplots()
ax.plot(x, x, label=‘linear’)
ax.plot(x, x2, label=‘quadratic’)
ax.plot(x, x
3, label=‘cubic’)
ax.set_xlabel(‘x label’)
ax.set_ylabel(‘y label’)
ax.set_title(“Simple Plot”)
ax.legend()
output_13_1

而如果採用第二種繪圖介面,繪製同樣的圖,程式碼是這樣的:

x = np.linspace(0, 2, 100)

plt.plot(x, x, label=‘linear’)
plt.plot(x, x2, label=‘quadratic’)
plt.plot(x, x
3, label=‘cubic’)
plt.xlabel(‘x label’)
plt.ylabel(‘y label’)
plt.title(“Simple Plot”)
plt.legend()

在這裡插入圖片描述

相關文章