學習打卡2-藝術畫筆見乾坤
一、概述
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有兩種型別:primitives 和containers。
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)
相關文章
- JavaScript DOM 程式設計藝術 學習筆記01JavaScript程式設計筆記
- JavaScript DOM 程式設計藝術 學習筆記 02JavaScript程式設計筆記
- 《Android藝術開發探索》學習筆記之IPCAndroid筆記
- Ext學習筆記2-物件導向筆記物件
- 每日學習打卡
- JavaScript入門學習之旅(二)——JavaScript DOM程式設計藝術學習筆記(上)JavaScript程式設計筆記
- 有趣的CSS畫素藝術CSS
- 【JavaScript學習筆記】畫圖JavaScript筆記
- 《Fluid Engine Development》 學習筆記2-基礎UIdev筆記
- 【Go】Go語言學習筆記-2-函式Go筆記函式
- 《Android藝術開發探索》學習筆記之View的工作原理Android筆記View
- 《Android藝術開發探索》學習筆記之Activity的生命週期Android筆記
- 第50天學習打卡(JavaScript)JavaScript
- 學習打卡 第六天
- 【Task02】Numpy學習打卡
- 【Task01】Numpy學習打卡
- 【Task04】Numpy學習打卡
- 組隊打卡學習csappAPP
- 【Task03】Pandas學習打卡
- JavaScript 藝術之美(一)序言和 JavaScript 語法(卞懂的學習筆記)JavaScript筆記
- 《Android藝術開發探索》學習筆記之View的事件體系(一)Android筆記View事件
- Scala 學習筆記 (1):初見筆記
- 【Web技術學習】PHP學習筆記WebPHP筆記
- MoveIt! 學習筆記2- MoveIt! Commander Scripting(命令列控制)筆記命令列
- 百度影像分割7日打卡訓練營學習筆記筆記
- 前端學習筆記----canvas實現畫板及定製畫筆(畫筆錯位,撤回,粗細,顏色)前端筆記Canvas
- Python學習 day01打卡Python
- RT-Thread學習筆記2-互斥量與訊號量thread筆記
- 【C#學習筆記】圖片畫素操作C#筆記
- 圖神經網路七日打卡營學習筆記及心得神經網路筆記
- 重生的藝術!從零開始教你成為畫素畫高手(一)
- 遊戲中的方塊藝術——從藝術生角度淺談劃時代產品"畫素風"遊戲
- 程式設計學習打卡記錄貼程式設計
- Unreal學習筆記2-繪製簡單三角形Unreal筆記
- 插畫師 Simón Prades的抽象藝術作品抽象
- 《Android藝術開發探索》學習筆記之View的事件體系(View的滑動)Android筆記View事件
- 《Android藝術開發探索》學習筆記之View的事件體系(滑動衝突)Android筆記View事件
- canvas學習筆記-2d畫布基礎Canvas筆記