matplotlib基礎知識全面解析

圖像基本知識:

一般狀況下,咱們能夠將一副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()

  調用plt.savefig()將當前的Figure對象保存成圖像文件,圖像格式由圖像文件的擴展名決定。下面程序將當前的圖表保存爲「test.png」,而且經過dpi指定圖像的分辨率爲120,所以輸出圖像的寬度爲「8X120 = 960」個像素。使用這種方法能夠很容易編寫出批量輸出圖表的程序。plt.savefig("test.png",dpi=120)

plt.imshow()

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: 當前子圖的編號。

 

ax.get_xlim()

得到Axes的x座標範圍,默認是 (0.0, 1.0)

ax.get_yscale()

得到y軸的數據刻畫類型

ax.set_xscale('log')

將x軸設置爲log

plt.tight_layout()

若是有多個子圖,咱們可使用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間的參數

相關文章
相關標籤/搜索