1. 程式人生 > 其它 >Python matplotlib 畫圖入門 01 Pyplot

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/