視覺化學習的第一天:瞭解Matplotlib

Monster�Siberia發表於2020-12-14

初識 Matplotlib

Matplotlib 是Python 2D繪相簿,能夠以多種英拷貝格式和跨平臺的互動式環境生成出版物質量的圖形,可以用來繪製靜態,動態,互動式的圖表。
Matplotlib 可用於Python指令碼,我一般使用的是jupyter notebook 。
Matplotlib 是Python資料視覺化庫中的泰斗,它已經成為python中公認的資料視覺化工具,我們所熟悉的pandas以及seaborn的繪圖介面也都是基於Matplotlib的高階封裝介面。

Matplotlib的圖是其實是在畫figure上的,而它的每一個figure會包含一個或者多個axes(一個可以指定座標系的子區域),最簡單建立figure和axes的方式是通過pyplot.subplots來實現,建立axes後,可以通過Axes.plot來繪製簡單的折線圖

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subpots() 
axes.plot([1,2,3,4],[1,2,3,4])#繪製圖表

在這裡插入圖片描述
matplotlib.pyplot方法能夠直接在當前axes上繪製影像,如果使用者未指定axes,matplotlib會幫你自動建立一個。所以上面的例子也可以簡化為以下這一行程式碼。

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

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

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

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

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

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

     x = np.linspace(0, 2, 100)
     fig, ax = plt.subplots()  
     ax.plot(x, x, label='linear')  
     ax.plot(x, x**2, 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() 
    

在這裡插入圖片描述

x = np.linspace(0, 2, 100)
plt.plot(x, x, label='linear') 
plt.plot(x, x**2, label='quadratic')  
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()

在這裡插入圖片描述
個人比較喜歡用plot的方法
以上學習並借鑑於Datawhale的視覺化學習第一天

相關文章