對圖像組成不了解?這樣學習Matplotlib必走彎路!


在學習Matplotlib的過程中,大家一定會遇到這樣那樣的問題,比如說,背景圖怎么設置?坐標軸怎么設置?坐標軸上的刻度值怎么設置?怎樣在PyQt中添加Matplotlib繪圖模塊?

其實想要學好用好Matplotlib是特別簡單的,前提就是要必須清楚的了解Matplotlib圖像組成。

通常情況下,我們可以將一副Matplotlib圖像分成三層結構:

  1. 第一層是底層的容器層,主要包括Canvas、Figure、Axes;
  2. 第二層是輔助顯示層,主要包括Axis、Spines、Tick、Grid、Legend、Title等,該層可通過set_axis_off()或set_frame_on(False)等方法設置不顯示;
  3. 第三層為圖像層,即通過plot、contour、scatter等方法繪制的圖像。

容器層

容器層主要由Canvas、Figure、Axes組成。

Canvas是位於最底層的系統層,在繪圖的過程中充當畫板的角色,即放置畫布的工具。通常情況下,我們並不需要對Canvas特別的聲明,但是當我需要在其他模塊如PyQt中調用Matplotlib模塊繪圖時,就需要首先聲明Canvas,這就相當於我們在自家畫室畫畫不用強調要用畫板,出去寫生時要特意帶一塊畫板。

Figure是Canvas上方的第一層,也是需要用戶來操作的應用層的第一層,在繪圖的過程中充當畫布的角色。當我們對Figure大小、背景色彩等進行設置的時候,就相當於是選擇畫布大小、材質的過程。因此,每當我們繪圖的時候,寫的第一行就是創建Figure的代碼。

Axes是應用層的第二層,在繪圖的過程中相當於畫布上的繪圖區的角色。一個Figure對象可以包含多個Axes對象,每個Axes都是一個獨立的坐標系,繪圖過程中的所有圖像都是基於坐標系繪制的。

輔助顯示層

輔助顯示層為Axes內的除了根據數據繪制出的圖像以外的內容,主要包括Axes外觀(facecolor)、邊框線(spines)、坐標軸(axis)、坐標軸名稱(axis label)、坐標軸刻度(tick)、坐標軸刻度標簽(tick label)、網格線(grid)、圖例(legend)、標題(title)等內容。

該層的設置可使圖像顯示更加直觀更加容易被用戶理解,但又並不會對圖像產生實質的影響。

圖像層

圖像層指Axes內通過plot、scatter、hist、contour、bar、barbs等函數根據數據繪制出的圖像。

由此我們可以看出

  • Canvas位於最底層,用戶一般接觸不到
  • Figure建立在Canvas之上
  • Axes建立在Figure之上
  • 坐標軸、圖例等輔助信息層以及圖像層都是建立在Axes之上

此外,對於輔助信息層和圖像層所包含的內容

  • 線型的對象均是繼承於Line2D的子類
  • 文字型的對象均是繼承於Text的子類
  • 相關設置均可參考父類的設置方法

想觀看Matplotlib教學視頻,了解更多Matplotlib實用技巧可關注

微信公眾賬號: MatplotlibClass

今日頭條號:Matplotlib小講堂


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM