matplotlib用法總結(標記、畫圖)
阿新 • • 發佈:2021-11-24
此前總結過兩次matplotlib庫,此次進一步加深並擴充套件更多用法。
前兩次文章
一:https://www.cnblogs.com/2020zxc/p/13369178.html
二:https://www.cnblogs.com/2020zxc/p/13620865.html
本次總結綜合以前所學,歸納用法,以及把一些較好的文章推出來
畫折線統計圖,使用關鍵函式:
plt.plot()
畫出條形統計圖:
plt.bar()
顯示圖片,使用關鍵函式
plt.imshow
顯示圖片示例程式碼:
img0 = cv2.imread(imgpath2) # imgpath2是完整影象路徑,由於opencv讀取的通道順序是bgr,因此需要轉換為rgb imgb,imgg,imgrView Code= cv2.split(img0) img = [imgr,imgg,imgb] img = cv2.merge(img) cv2.cvtColor(img, cv2.COLOR_BGR2RGB) cv2.imshow('test', img) cv2.waitKey(0) plt.figure(figsize=(8, 6), dpi=80) # figsize表示建立顯示圖片視窗大小,dpi表示解析度,也可以不填,使用預設引數 plt.imshow(img, alpha=0.5, cmap=plt.cm.gray) # 輸入需要顯示的圖片img(ndarry型別變數),alpha=0.5表示透明度為50%,cmap=plt.cm.gray表示顯示為灰色,cmap還可以填入其他引數 plt.show()
畫統計圖示例:
最簡單的語句是
plt.plot(x, y),表示輸入x和y兩個list,將根據各個對應點畫出折線統計圖,因此x、y長度必須保持一致(可以寫一個函式讓他們有對照關係)。
x、y對照生成程式碼如:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-3, 3, step=0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
更深層次地,可以對特殊點標記、註釋、透明、加某個點的文字標記等。
匯入必要的包省略..... 隨便建立幾條曲線: x = np.arange(-3, 3, 0.3) y = np.cos(x)*x y2 = np.sin(x)*x**3-x y3 = np.sin(x)*x**2-x plt.plot(x, y, 'o', ms=5, color='blue', label='label1',alpha=0.9) plt.plot(x, y2, linestyle='--',color='red', alpha=0.4,label='label2') plt.plot(x, y3, marker='x',color='green', alpha=0.8,label='label3') # 'o'表示使用圓形畫出散點圖,預設為實線,color表示點的顏色,label表示對曲線說明標記,alpha表示透明度 # linestyle表示折線圖的樣式,可以有虛線實現點劃等等, # 以上的‘o’與linestyle命令不可以同時在同一個函式使用,且都不可以與marker命令使用 # 實踐可以發現,marker命令會把曲線上的點和點與點之間的連線都確定 plt.legend() # 使用預設標籤位置,會自動調整適合區域,設定label後必須呼叫該函式 plt.show()View Code
實驗效果:
各個引數表說明:
plt.legend(loc='center') 中的loc引數(預設會自動調整到適應位置):
'best'
:
0
, (only implemented
for
axes legends)(自適應方式)
'upper right'
:
1
,
'upper left'
:
2
,
'lower left'
:
3
,
'lower right'
:
4
,
'right'
:
5
,
'center left'
:
6
,
'center right'
:
7
,
'lower center'
:
8
,
'upper center'
:
9
,
'center'
:
10
,
顏色color:
blue 藍,縮寫為: b
green 綠,縮寫為 g
red 紅 r
cyan 藍綠 c
magenta 洋紅 m
yellow 黃 y
black 黑 k
white 白 w
線型linestyle:
實線 '-'
虛線 '--'
點畫線 '-.
點線 ':'
點型引數如marker
未完待續......