在學(xué)習(xí)Matplotlib的過程中,大家一定會遇到這樣那樣的問題,比如說,背景圖怎么設(shè)置?坐標(biāo)軸怎么設(shè)置?坐標(biāo)軸上的刻度值怎么設(shè)置?怎樣在PyQt中添加Matplotlib繪圖模塊?
其實想要學(xué)好用好Matplotlib是特別簡單的,前提就是要必須清楚的了解Matplotlib圖像組成。
通常情況下,我們可以將一副Matplotlib圖像分成三層結(jié)構(gòu):
容器層主要由Canvas、Figure、Axes組成。
Canvas是位于最底層的系統(tǒng)層,在繪圖的過程中充當(dāng)畫板的角色,即放置畫布的工具。通常情況下,我們并不需要對Canvas特別的聲明,但是當(dāng)我需要在其他模塊如PyQt中調(diào)用Matplotlib模塊繪圖時,就需要首先聲明Canvas,這就相當(dāng)于我們在自家畫室畫畫不用強調(diào)要用畫板,出去寫生時要特意帶一塊畫板。
Figure是Canvas上方的第一層,也是需要用戶來操作的應(yīng)用層的第一層,在繪圖的過程中充當(dāng)畫布的角色。當(dāng)我們對Figure大小、背景色彩等進行設(shè)置的時候,就相當(dāng)于是選擇畫布大小、材質(zhì)的過程。因此,每當(dāng)我們繪圖的時候,寫的第一行就是創(chuàng)建Figure的代碼。
Axes是應(yīng)用層的第二層,在繪圖的過程中相當(dāng)于畫布上的繪圖區(qū)的角色。一個Figure對象可以包含多個Axes對象,每個Axes都是一個獨立的坐標(biāo)系,繪圖過程中的所有圖像都是基于坐標(biāo)系繪制的。
輔助顯示層為Axes內(nèi)的除了根據(jù)數(shù)據(jù)繪制出的圖像以外的內(nèi)容,主要包括Axes外觀(facecolor)、邊框線(spines)、坐標(biāo)軸(axis)、坐標(biāo)軸名稱(axis label)、坐標(biāo)軸刻度(tick)、坐標(biāo)軸刻度標(biāo)簽(tick label)、網(wǎng)格線(grid)、圖例(legend)、標(biāo)題(title)等內(nèi)容。
該層的設(shè)置可使圖像顯示更加直觀更加容易被用戶理解,但又并不會對圖像產(chǎn)生實質(zhì)的影響。
圖像層指Axes內(nèi)通過plot、scatter、hist、contour、bar、barbs等函數(shù)根據(jù)數(shù)據(jù)繪制出的圖像。
由此我們可以看出
- Canvas位于最底層,用戶一般接觸不到
- Figure建立在Canvas之上
- Axes建立在Figure之上
- 坐標(biāo)軸、圖例等輔助信息層以及圖像層都是建立在Axes之上
此外,對于輔助信息層和圖像層所包含的內(nèi)容
- 線型的對象均是繼承于Line2D的子類
- 文字型的對象均是繼承于Text的子類
- 相關(guān)設(shè)置均可參考父類的設(shè)置方法
想觀看Matplotlib教學(xué)視頻,了解更多Matplotlib實用技巧可關(guān)注
微信公眾賬號: MatplotlibClass
今日頭條號:Matplotlib小講堂
聯(lián)系客服