NumPy Matplotlib庫


NumPy - Matplotlib

Matplotlib 是 Python 的繪相簿。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。

Matplotlib 模組最初是由 John D. Hunter 編寫的。 自 2012 年以來,Michael Droettboom 是主要開發者。 目前,Matplotlib 1.5.1 是可用的穩定版本。 該軟體包可以二進位制分發,其原始碼形式在 www.matplotlib.org 上提供。

通常,通過新增以下語句將包匯入到 Python 指令碼中:

from matplotlib import pyplot as plt

這裡pyplot()是 matplotlib 庫中最重要的函式,用於繪製 2D 資料。 以下指令碼繪製方程y = 2x + 5

範例

import numpy as np 
from matplotlib import pyplot as plt 

x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) plt.show()

ndarray物件xnp.arange()函式建立為x軸上的值。y軸上的對應值儲存在另一個陣列物件y中。 這些值使用matplotlib軟體包的pyplot子模組的plot()函式繪製。

圖形由show()函式展示。

上面的程式碼應該產生以下輸出:

作為線性圖的替代,可以通過向plot()函式新增格式字串來顯示離散值。 可以使用以下格式化字元。

字元 描述
'-' 實線樣式
'--' 短橫線樣式
'-.' 點劃線樣式
':' 虛線樣式
'.' 點標記
',' 畫素標記
'o' 圓標記
'v' 倒三角標記
'^' 正三角標記
'<' 左三角標記
'>' 右三角標記
'1' 下箭頭標記
'2' 上箭頭標記
'3' 左箭頭標記
'4' 右箭頭標記
's' 正方形標記
'p' 五邊形標記
'*' 星形標記
'h' 六邊形標記 1
'H' 六邊形標記 2
'+' 加號標記
'x' X 標記
'D' 菱形標記
'd' 窄菱形標記
'|' 豎直線標記
'_' 水平線標記

還定義了以下顏色縮寫。

字元 顏色
'b' 藍色
'g' 綠色
'r' 紅色
'c' 青色
'm' 品紅色
'y' 黃色
'k' 黑色
'w' 白色

要顯示圓來代表點,而不是上面範例中的線,請使用ob作為plot()函式中的格式字串。

範例

import numpy as np 
from matplotlib import pyplot as plt 

x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y,"ob") 
plt.show()

上面的程式碼應該產生以下輸出:

繪製正弦波

以下指令碼使用 matplotlib 生成正弦波圖

範例

import numpy as np 
import matplotlib.pyplot as plt 
# 計算正弦曲線上點的 x 和 y 坐標
x = np.arange(0,  3  * np.pi,  0.1) 
y = np.sin(x)
plt.title("sine wave form")  
# 使用 matplotlib 來繪製點
plt.plot(x, y) 
plt.show()

subplot()

subplot()函式允許你在同一圖中繪製不同的東西。 在下面的指令碼中,繪製正弦餘弦值。

範例

import numpy as np 
import matplotlib.pyplot as plt 
# 計算正弦和餘弦曲線上的點的 x 和 y 坐標 
x = np.arange(0,  3  * np.pi,  0.1) 
y_sin = np.sin(x) 
y_cos = np.cos(x)  
# 建立 subplot 網格,高為 2,寬為 1  
# 啟用第一個 subplot
plt.subplot(2,  1,  1)  
# 繪製第一個影象 
plt.plot(x, y_sin) 
plt.title('Sine')  
# 將第二個 subplot 啟用,並繪製第二個影象
plt.subplot(2,  1,  2) 
plt.plot(x, y_cos) 
plt.title('Cosine')  
# 展示影象
plt.show()

上面的程式碼應該產生以下輸出:

Sub Plot

bar()

pyplot子模組提供bar()函式來生成條形圖。 以下範例生成兩組xy陣列的條形圖。

範例

from matplotlib import pyplot as plt 
x =  [5,8,10] 
y =  [12,16,6] 
x2 =  [6,9,11] 
y2 =  [6,15,7] 
plt.bar(x, y, align =  'center') 
plt.bar(x2, y2, color =  'g', align =  'center') 
plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 
plt.show()