一般狀況下,咱們能夠將一副Matplotlib圖像分紅三層結構:html
1.第一層是底層的容器層,主要包括Canvas、Figure、Axes;spring
2.第二層是輔助顯示層,主要包括Axis、Spines、Tick、Grid、Legend、Title等,該層可經過set_axis_off()或set_frame_on(False)等方法設置不顯示;api
3.第三層爲圖像層,即經過plot、contour、scatter等方法繪製的圖像。數組
容器層:容器層主要由Canvas、Figure、Axes組成函數
Canvas是位於最底層的系統層,繪圖過程當中充當畫板的角色,即放置畫布的工具。一般狀況下,咱們並不須要對Canvas特別的聲明,可是當我須要在其餘模塊如PyQt中調用Matplotlib模塊繪圖時,就須要首先聲明Canvas,這就至關於咱們在自家畫室畫畫不用強調要用畫板,出去寫生時要特地帶一塊畫板。工具
Figure(fig)是Canvas上方的第一層,也是須要用戶來操做的應用層的第一層,在繪圖的過程當中充當畫布的角色。當咱們對Figure大小、背景色彩等進行設置的時候,就至關因而選擇畫布大小、材質的過程。所以,每當咱們繪圖的時候,寫的第一行就是建立Figure的代碼。佈局
Axes(ax,座標系)是應用層的第二層,在繪圖的過程當中至關於畫布上繪圖區的角色。一個Figure對象能夠包含多個Axes對象,每一個Axes都是一個獨立的座標系,繪圖過程當中的全部圖像都是基於座標系繪製的。spa
輔助顯示層:3d
輔助顯示層爲Axes內的除了根據數據繪製出的圖像之外的內容,主要包括Axes外觀(facecolor)、邊框線(spines)、座標軸(axis)、座標軸名稱(axis label)、座標軸刻度(tick)、座標軸刻度標籤(tick label)、網格線(grid)、圖例(legend)、標題(title)等內容。該層的設置可以使圖像顯示更加直觀更加容易被用戶理解,但又並不會對圖像產生實質的影響。code
圖像層:
圖像層指Axes內經過plot、scatter、hist、contour、bar、barbs等函數根據數據繪製出的圖像。
調用plt.savefig()將當前的Figure對象保存成圖像文件,圖像格式由圖像文件的擴展名決定。下面程序將當前的圖表保存爲「test.png」,而且經過dpi指定圖像的分辨率爲120,所以輸出圖像的寬度爲「8X120 = 960」個像素。使用這種方法能夠很容易編寫出批量輸出圖表的程序。plt.savefig("test.png",dpi=120)
imshow()函數格式爲:matplotlib.pyplot.imshow
(X, cmap=None)
X: 要繪製的圖像或數組
cmap: 顏色圖譜(colormap), 默認繪製爲RGB(A)顏色空間。其它可選的顏色圖譜以下列表:
顏色圖譜 |
描述 |
autumn |
紅-橙-黃 |
bone |
黑-白,x線 |
cool |
青-洋紅 |
copper |
黑-銅 |
flag |
紅-白-藍-黑 |
gray |
黑-白 |
hot |
黑-紅-黃-白 |
hsv |
hsv顏色空間, 紅-黃-綠-青-藍-洋紅-紅 |
inferno |
黑-紅-黃 |
jet |
|
magma |
黑-紅-白 |
pink |
黑-粉-白 |
plasma |
綠-紅-黃 |
prism |
紅-黃-綠-藍-紫-...-綠模式 |
spring |
洋紅-黃 |
summer |
綠-黃 |
viridis |
藍-綠-黃 |
winter |
藍-綠 |
Plt.figure()
matplotlib.pyplot.figure
(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)
全部參數都是可選的,都有默認值,所以調用該函數時能夠不帶任何參數,其中:
num: 整型或字符型均可以。設置爲整型,則該整型數字表示窗口序號。設置爲字符型,則該字符串表示窗口名稱。用該參數來命名窗口,兩個窗口序號或名相同,則後一個窗口會覆蓋前一個窗口。
figsize: 設置窗口大小。是一個tuple型的整數,如figsize=(8,8)。
dpi: 整形數字,表示窗口的分辨率。
facecolor: 窗口的背景顏色。edgecolor: 窗口的邊框顏色。
用figure()函數建立的窗口,只能顯示一幅圖片,顯示多幅圖片,則須要將這個窗口再劃分爲幾個子圖,在每一個子圖中顯示不一樣的圖片。
可使用subplot()函數來劃分子圖,函數格式爲:
matplotlib.pyplot.subplot(nrows, ncols, plot_number)
nrows: 子圖的行數。
ncols: 子圖的列數。
plot_number: 當前子圖的編號。
得到Axes的x座標範圍,默認是 (0.0, 1.0)
得到y軸的數據刻畫類型
將x軸設置爲log
若是有多個子圖,咱們可使用tight_layout()函數來調整顯示的佈局,該函數格式爲:
matplotlib.pyplot.tight_layout
(pad=1.08, h_pad=None, w_pad=None, rect=None)
全部的參數都是可選的,調用該函數時可省略全部的參數:
pad: 主窗口邊緣和子圖邊緣間的間距,默認爲1.08
h_pad, w_pad: 子圖邊緣之間的間距,默認爲 pad_inches
rect: 一個矩形區域,若是設置這個值,則將全部的子圖調整到這個矩形區域內。
通常調用爲:plt.tight_layout() #自動調整subplot間的參數