matplotlib的原理或者說基礎邏輯是,用artist物件在畫布(canvas)上繪製(render)圖形。
就和人作畫的步驟類似:
準備一塊畫布或畫紙
準備好顏料、畫筆等製圖工具
作畫所以matplotlib有三個層次的api:
matplotlib.backend_bases.figurecanvas
代表了繪圖區,所有的影象都是在繪圖區完成的
matplotlib.backend_bases.renderer
代表了渲染器,可以近似理解為畫筆,控制如何在 figurecanvas 上畫圖。
matplotlib.artist.artist
代表了具體的圖表元件,即呼叫了renderer的介面在canvas上作圖。
前兩者處理程式和計算機的底層互動的事項,第三項artist就是具體的呼叫介面來做出我們想要的圖,比如圖形、文字、線條的設定。所以通常來說,我們95%的時間,都是用來和matplotlib.artist.artist類打交道的。
artist有兩種型別:primitives
和containers
。
primitive
是基本要素,它包含一些我們要在繪圖區作圖用到的標準圖形物件,如曲線line2d,文字text,矩形rectangle,影象image等。
container
是容器,即用來裝基本要素的地方,包括圖形figure、座標系axes和座標軸axis。
matplotlib的標準使用流程為:
建立乙個figure
例項
使用figure
例項建立乙個或者多個axes
或subplot
例項
使用axes
例項的輔助方法來建立primitive
值得一提的是,axes是一種容器,它可能是matplotlib api中最重要的類,並且我們大多數時間都花在和它打交道上。更具體的資訊會在之後容器小節說明。
在圖形中的每乙個元素都對應著乙個matplotlibartist
,且都有其對應的配置屬性列表。
figure
本身包含乙個rectangle,rectangle的大小就是figure的大小;你可以用來設定figure的背景色和透明度。
每個axes
邊界框(預設白底黑邊),也有乙個rectangle,通過它可以設定axes的顏色、透明度等。
這些例項都儲存在成員變數(member variables)figure.patch
和axes.patch
中。 (patch是乙個**於matlab的名詞,它是圖形上顏色的乙個2d補丁,包含rectangels-矩形,circles-圓和plygons-多邊形)
換個表達方式:
figure.patch屬性:是乙個rectangle,代表了圖表的矩形框,它的大小就是圖表的大小, 並且可以通過它設定figure的背景色和透明度。
axes.patch屬性:也是乙個rectangle,代表了繪圖座標軸內部的矩形框(白底黑邊), 通過它可以設定axes的顏色、透明度等。
每個matplotlibartist
都有以下屬性:
現在我們知道了如何檢查和設定給定物件的屬性,我們還需要知道如何獲取該物件。
前文介紹到,artist
包含兩種物件:基本要素-primitives
和容器-containers
。
primitives
是基本要素,它包含一些我們要在繪圖區作圖用到的標準圖形物件,如曲線line2d,文字text,矩形rectangle,影象image等。
container
是容器,即用來裝基本要素的地方,包括圖形figure、座標系axes和座標軸axis。
本章重點介紹下primitives
的幾種型別:曲線-line2d,矩形-rectangle,影象-image(其中文字-text較為複雜,會在之後單獨詳細說明。)
在matplotlib中曲線的繪製,主要是通過類matplotlib.lines.line2d
來完成的。
它的基類:matplotlib.artist.artist
matplotlib中線-line
的含義:它表示的可以是連線所有頂點的實線樣式,也可以是每個頂點的標記。此外,這條線也會受到繪畫風格的影響。
其中常用的的引數有:
matplotlib.patches.patch類是二維圖形類。它的基類是matplotlib.artist.artist,它的建構函式:
詳細清單見 matplotlib.patches api
學習打卡2 藝術畫筆見乾坤
一 概述 1.matplotlib的三層api matplotlib的原理或者說基礎邏輯是,用artist物件在畫布 canvas 上繪製 render 圖形。就和人作畫的步驟類似 1.準備一塊畫布或畫紙 2.準備好顏料 畫筆等製圖工具 3.作畫 所以matplotlib有三個層次的api 2.ar...