Python matplotlib 畫圖入門 01 Pyplot
Python matplotlib 畫圖入門
安裝 matplotlib
C:\Python310\Scripts>pip install matplotlib
Matplotlib Pyplot
Pyplot 是 Matplotlib 的子庫,提供了和 MATLAB 類似的繪圖 API。
Pyplot 是常用的繪圖模組,能很方便讓使用者繪製 2D 圖表。
Pyplot 包含一系列繪圖函式的相關函式,每個函式會對當前的影象進行一些修改,例如:給影象加上標記,生新的影象,在影象中產生新的繪圖區域等等。
使用的時候,我們可以使用 import 匯入 pyplot 庫,並設定一個別名 plt:
import matplotlib.pyplot as plt
這樣我們就可以使用 plt 來引用 Pyplot 包的方法。
以下例項,我們通過兩個座標 (0,0) 到 (6,100) 來繪製一條線:
例項
import matplotlib.pyplot as plt import numpy as np xpoints = np.array([0, 6]) ## x1, x2 ypoints = np.array([0, 100]) ## y1, y2 plt.plot(xpoints, ypoints) plt.show()
輸出結果如下所示:
以上例項中我們使用了 Pyplot 的 plot() 函式, plot() 函式是繪製二維圖形的最基本函式。
plot() 用於畫圖它可以繪製點和線,語法格式如下:
# 畫單條線 plot([x], y, [fmt], *, data=None, **kwargs) # 畫多條線 plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
引數說明:
- x, y:點或線的節點,x 為 x 軸資料,y 為 y 軸資料,資料可以列表或陣列。
- fmt:可選,定義基本格式(如顏色、標記和線條樣式)。
- **kwargs:可選,用在二維平面圖上,設定指定屬性,如標籤,線的寬度等。
>>> plot(x, y) #建立 y 中資料與 x 中對應值的二維線圖,使用預設樣式 >>> plot(x, y, 'bo') # 建立 y 中資料與 x 中對應值的二維線圖,使用藍色實心圈繪製 >>> plot(y) # x 的值為 0..N-1 >>> plot(y, 'r+') # 使用紅色 + 號
顏色字元:'b' 藍色,'m' 洋紅色,'g' 綠色,'y' 黃色,'r' 紅色,'k' 黑色,'w' 白色,'c' 青綠色,'#008000' RGB 顏色符串。多條曲線不指定顏色時,會自動選擇不同顏色。
線型引數:'‐' 實線,'‐‐' 破折線,'‐.' 點劃線,':' 虛線。
標記字元:'.' 點標記,',' 畫素標記(極小點),'o' 實心圈標記,'v' 倒三角標記,'^' 上三角標記,'>' 右三角標記,'<' 左三角標記...等等。
如果我們要繪製座標 (1, 3) 到 (8, 10) 的線,我們就需要傳遞兩個陣列 [1, 8] 和 [3, 10] 給 plot 函式:
例項
import matplotlib.pyplot as plt import numpy as np xpoints = np.array([1, 8]) # x1, x2 ypoints = np.array([3, 10]) # y1, y2 plt.plot(xpoints, ypoints) plt.show()
以上程式碼輸出結果為:
如果我們只想繪製兩個座標點,而不是一條線,可以使用 o 引數,表示一個實心圈的標記:
繪製座標 (1, 3) 和 (8, 10) 的兩個點
import matplotlib.pyplot as plt import numpy as np xpoints = np.array([1, 8]) # x1, x2 ypoints = np.array([3, 10]) # y1, y2 plt.plot(xpoints, ypoints, 'o') plt.show()
以上程式碼輸出結果為:
我們也可以繪製任意數量的點,只需確保兩個軸上的點數相同即可。
繪製一條不規則線,座標為 (1, 3) 、 (2, 8) 、(6, 1) 、(8, 10),對應的兩個陣列為:[1, 2, 6, 8] 與 [3, 8, 1, 10]。
例項
import matplotlib.pyplot as plt import numpy as np xpoints = np.array([1, 2, 6, 8]) # x ypoints = np.array([3, 8, 1, 10]) # y plt.plot(xpoints, ypoints) plt.show()
以上程式碼輸出結果為:
如果我們不指定 x 軸上的點,則 x 會根據 y 的值來設定為 0, 1, 2, 3..N-1。
例項
import matplotlib.pyplot as plt import numpy as np ypoints = np.array([3, 10]) # y plt.plot(ypoints) plt.show()
x=[0,1] y=[3,10] (0,3) (1,10)
以上程式碼輸出結果為:
從上圖可以看出 x 的值預設設定為 [0, 1]。
再看一個有更多值的例項:
例項
import matplotlib.pyplot as plt import numpy as np ypoints = np.array([3, 8, 1, 10, 5, 7]) # x=[0,1,2,3,3,4,5] plt.plot(ypoints) plt.show()
以上程式碼輸出結果為:
從上圖可以看出 x 的值預設設定為 [0, 1, 2, 3, 4, 5]。
以下例項我們繪製一個正弦和餘弦圖,在 plt.plot() 引數中包含兩對 x,y 值,第一對是 x,y,這對應於正弦函式,第二對是 x,z,這對應於餘弦函式。
例項
import matplotlib.pyplot as plt import numpy as np x = np.arange(0,4*np.pi,0.1) # start,stop,step y = np.sin(x) z = np.cos(x) plt.plot(x,y,x,z) plt.show()
以上程式碼輸出結果為:
更多內容參考:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
REF
https://www.runoob.com/matplotlib/matplotlib-tutorial.html
http://c.biancheng.net/matplotlib/what-is-matplotlib.html
https://www.w3cschool.cn/doc_matplotlib_1_5/