藝術畫筆見乾坤

2021-10-12 09:59:54 字數 2563 閱讀 9541

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有兩種型別:primitivescontainers

primitive是基本要素,它包含一些我們要在繪圖區作圖用到的標準圖形物件,如曲線line2d,文字text,矩形rectangle,影象image等。

container是容器,即用來裝基本要素的地方,包括圖形figure、座標系axes和座標軸axis

matplotlib的標準使用流程為:

建立乙個figure例項

使用figure例項建立乙個或者多個axessubplot例項

使用axes例項的輔助方法來建立primitive

值得一提的是,axes是一種容器,它可能是matplotlib api中最重要的類,並且我們大多數時間都花在和它打交道上。更具體的資訊會在之後容器小節說明。

在圖形中的每乙個元素都對應著乙個matplotlibartist,且都有其對應的配置屬性列表。

figure本身包含乙個rectangle,rectangle的大小就是figure的大小;你可以用來設定figure的背景色和透明度。

每個axes邊界框(預設白底黑邊),也有乙個rectangle,通過它可以設定axes的顏色、透明度等。

這些例項都儲存在成員變數(member variables)figure.patchaxes.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...