Matplotlib 是 Python 的繪圖庫(kù)。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開(kāi)源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。
Matplotlib 模塊最初是由 John D. Hunter 編寫的。 自 2012 年以來(lái),Michael Droettboom 是主要開(kāi)發(fā)者。 目前,Matplotlib 1.5.1 是可用的穩(wěn)定版本。 該軟件包可以二進(jìn)制分發(fā),其源代碼形式在 www.matplotlib.org 上提供。
通常,通過(guò)添加以下語(yǔ)句將包導(dǎo)入到 Python 腳本中:
from matplotlib import pyplot as plt
這里pyplot()
是 matplotlib 庫(kù)中最重要的函數(shù),用于繪制 2D 數(shù)據(jù)。 以下腳本繪制方程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
對(duì)象x
由np.arange()
函數(shù)創(chuàng)建為x
軸上的值。y
軸上的對(duì)應(yīng)值存儲(chǔ)在另一個(gè)數(shù)組對(duì)象y
中。 這些值使用matplotlib
軟件包的pyplot
子模塊的plot()
函數(shù)繪制。
圖形由show()
函數(shù)展示。
上面的代碼應(yīng)該產(chǎn)生以下輸出:
作為線性圖的替代,可以通過(guò)向plot()
函數(shù)添加格式字符串來(lái)顯示離散值。 可以使用以下格式化字符。
字符 | 描述 |
---|---|
'-' |
實(shí)線樣式 |
'--' |
短橫線樣式 |
'-.' |
點(diǎn)劃線樣式 |
':' |
虛線樣式 |
'.' |
點(diǎn)標(biāo)記 |
',' |
像素標(biāo)記 |
'o' |
圓標(biāo)記 |
'v' |
倒三角標(biāo)記 |
'^' |
正三角標(biāo)記 |
'<' |
左三角標(biāo)記 |
'>' |
右三角標(biāo)記 |
'1' |
下箭頭標(biāo)記 |
'2' |
上箭頭標(biāo)記 |
'3' |
左箭頭標(biāo)記 |
'4' |
右箭頭標(biāo)記 |
's' |
正方形標(biāo)記 |
'p' |
五邊形標(biāo)記 |
'*' |
星形標(biāo)記 |
'h' |
六邊形標(biāo)記 1 |
'H' |
六邊形標(biāo)記 2 |
'+' |
加號(hào)標(biāo)記 |
'x' |
X 標(biāo)記 |
'D' |
菱形標(biāo)記 |
'd' |
窄菱形標(biāo)記 |
'|' |
豎直線標(biāo)記 |
'_' |
水平線標(biāo)記 |
還定義了以下顏色縮寫。
字符 | 顏色 |
---|---|
'b' |
藍(lán)色 |
'g' |
綠色 |
'r' |
紅色 |
'c' |
青色 |
'm' |
品紅色 |
'y' |
黃色 |
'k' |
黑色 |
'w' |
白色 |
要顯示圓來(lái)代表點(diǎn),而不是上面示例中的線,請(qǐng)使用ob
作為plot()
函數(shù)中的格式字符串。
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()
上面的代碼應(yīng)該產(chǎn)生以下輸出:
以下腳本使用 matplotlib 生成正弦波圖。
import numpy as np
import matplotlib.pyplot as plt
# 計(jì)算正弦曲線上點(diǎn)的 x 和 y 坐標(biāo)
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
plt.title("sine wave form")
# 使用 matplotlib 來(lái)繪制點(diǎn)
plt.plot(x, y)
plt.show()
subplot()
subplot()
函數(shù)允許你在同一圖中繪制不同的東西。 在下面的腳本中,繪制正弦和余弦值。
import numpy as np
import matplotlib.pyplot as plt
# 計(jì)算正弦和余弦曲線上的點(diǎn)的 x 和 y 坐標(biāo)
x = np.arange(0, 3 * np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 建立 subplot 網(wǎng)格,高為 2,寬為 1
# 激活第一個(gè) subplot
plt.subplot(2, 1, 1)
# 繪制第一個(gè)圖像
plt.plot(x, y_sin)
plt.title('Sine')
# 將第二個(gè) subplot 激活,并繪制第二個(gè)圖像
plt.subplot(2, 1, 2)
plt.plot(x, y_cos)
plt.title('Cosine')
# 展示圖像
plt.show()
上面的代碼應(yīng)該產(chǎn)生以下輸出:
bar()
pyplot
子模塊提供bar()
函數(shù)來(lái)生成條形圖。 以下示例生成兩組x
和y
數(shù)組的條形圖。
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()