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

上一篇: NumPy線性代數 下一篇: NumPy使用 Matplotlib 繪製直方圖