Jemmy Lin
3 min readJun 8, 2017

Matplotlib 簡介

Matplotlib 是利用 Python 所實作的繪圖套件,其中包含兩個最重要的模組 — pylab 和 pyplot。pylab 已經幾乎實作了在學術介最常用的套件 — Matlab 所支援的繪圖功能,或者可以說 pylab 其實就是 Matlab 的 Python 版本;而 pyplot 是把 pylab 再加上 Python 界裡一個很有名的數學計算套件 — Numpy,讓使用者在使用 pyplot 時,可以直接呼叫 Numpy 的函式做計算後再以圖型的方式呈現。

在這裡以實際程式來介紹 pyplot 的使用方式

from matplotlib import pyplot as pl #匯入 pyplot 套件x = range(-10, 10)
y = [i**3 +2*i+1 for i in x]
y2 = [5 * i ** 2 - 7 * i - 8 for i in x]

pl.subplot(211)
pl.plot(x, y, 'ob--', label=u'y=x^3+2x+1')
pl.legend()
pl.xticks([2, 4, 6, 8, 10])
pl.title('This is test')
pl.xlabel('x-axe1')
pl.ylabel('y-axe1')

pl.subplot(212)
pl.plot(x, y2, 'or-', label=u'y=5x^2-7x-8')
pl.legend()
pl.title('This is test2')
pl.xlabel('x-axe2')
pl.ylabel('y-axe2')

pl.show()

在上面這個例子中,我們想要做出兩條方程式,並繪製在 2D 圖面上。其中 x 是介於 -10 ~ 10 之間的數字,針對於 x 的每一個數字,y = x³+2x+1 , y2 = 5x²-7x-8。x,y,y2 皆為 list 格式

先來看一下上面的程式最後的輸出結果

現在來解釋一下上面函式的意義

  1. subplot — 可界定一張圖上想要呈現幾個子圖。參數的三個數字,意義代表的是 (垂直線上會呈現的圖張數,水平線上會呈現的圖張數,自己所代表的編號)。例如 subplot(211),代表有兩張圖垂直排列,水平的方向只有一張圖,然後自己是編號第一張,這樣的結果就會顯示如上的圖形。
  2. plot — 第一個參數為水平座標,第二個參數為垂直座標,第三個參數為線的樣式,o代表圓點,b代表藍色,雙減號代表虛線,當然還有其他的樣式可以自由選擇。另外最後的label可以允許在圖樣上加上簡單的介紹。
  3. legend — 如果有加上label參數的話需要加上此函式來讓圖樣生效。
  4. xticks — 接受一串陣列,可在圖型上的座標軸標上此座標,這是因為有時候圖形都擠在一起時,用這個方式可以較為清楚的看到座標。
  5. title — 圖型的標題。
  6. xlabel/ylabel — x軸和y軸的標籤。
  7. show — 之前的函式都是設定而已,只有show這個函式才會真正的把圖給顯示出來。

這裡講解了最基本的 pyplot 應用,可再加上 numpy 的使用功能會變得更強大。