學習打卡2-藝術畫筆見乾坤

一棵二叉樹發表於2020-12-18

一、概述

1.matplotlib的三層api
matplotlib的原理或者說基礎邏輯是,用Artist物件在畫布(canvas)上繪製(Render)圖形。 就和人作畫的步驟類似:

1.準備一塊畫布或畫紙 
2.準備好顏料、畫筆等製圖工具 
3.作畫

所以matplotlib有三個層次的API:

  • matplotlib.backend_bases.FigureCanvas 代表了繪圖區,所有的影像都是在繪圖區完成的
  • matplotlib.backend_bases.Renderer 代表了渲染器,可以近似理解為畫筆,控制如何在 FigureCanvas 上畫圖。
  • matplotlib.artist.Artist 代表了具體的圖表元件,即呼叫了Renderer的介面在Canvas上作圖。 前兩者處理程式和計算機的底層互動的事項,第三項Artist就是具體的呼叫介面來做出我們想要的圖,比如圖形、文字、線條的設定。所以通常來說,我們95%的時間,都是用來和matplotlib.artist.Artist類打交道的。

2.Artist的分類
Artist有兩種型別:primitivescontainers
primitive是基本要素,它包含一些我們要在繪圖區作圖用到的標準圖形物件,如曲線Line2D,文字text,矩形Rectangle,影像image等。
container是容器,即用來裝基本要素的地方,包括圖形figure、座標系Axes和座標軸Axis。他們之間的關係如下圖所示:
在這裡插入圖片描述

3.matplotlib標準用法
matplotlib的標準使用流程為:

- 建立一個Figure例項

- 使用Figure例項建立一個或者多個Axes或Subplot例項

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

值得一提的是,Axes是一種容器,它可能是matplotlib
API中最重要的類,並且我們大多數時間都花在和它打交道上。更具體的資訊會在之後容器小節說明。
一個流程示例及說明如下:

import matplotlib.pyplot as plt
import numpy as np

# step 1 
# 我們用 matplotlib.pyplot.figure() 建立了一個Figure例項
fig = plt.figure()

# step 2
# 然後用Figure例項建立了一個兩行一列(即可以有兩個subplot)的繪圖區,並同時在第一個位置建立了一個subplot
ax = fig.add_subplot(2, 1, 1) # two rows, one column, first plot

# step 3
# 然後用Axes例項的方法畫了一條曲線
t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2*np.pi*t)
line, = ax.plot(t, s, color='blue', lw=2)

在這裡插入圖片描述

相關文章