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()函數展示。

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

NumPy

作爲線性圖的替代,可以通過向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()

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

NumPy

繪製正弦波

以下腳本使用 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()

NumPy

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

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()