一、概述
1.matplotlib的三層api
matplotlib的原理或者說基礎邏輯是,用artist物件在畫布(canvas)上繪製(render)圖形。 就和人作畫的步驟類似:
1.準備一塊畫布或畫紙
2.準備好顏料、畫筆等製圖工具
3.作畫
所以matplotlib有三個層次的api:
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
)「」「
numpy.arrange(
[start,
]stop,
[step,
],dtype=
none)-
> numpy.ndarray
np.arrange(
)函式返回乙個有終點和起點的固定步長的排列,如[1,
2,3,
4,5]
,起點是1,終點是6,步長為1
.引數個數情況:np.arrange(
)函式分為乙個引數,兩個引數,三個引數三種情況
1)乙個引數時,引數值為終點,起點取預設值0,步長取預設值1。
2)兩個引數時,第乙個引數為起點,第二個引數為終點,步長取預設值1。
3)三個引數時,第乙個引數為起點,第二個引數為終點,第三個引數為步長。其中步長支援小數
#乙個引數 預設起點0,步長為1 輸出:【0 1 2】
a = np.arange(3)
#兩個引數 預設步長為1 輸出 【3 4 5 6 7 8】
a = np.arange(3,
9)#三個引數 起點為0,終點為3,步長為0.1 輸出【0. 0.1,0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9】
a = np.arange(0,
3,0.1)
「」」s = np.sin(
2*np.pi*t)
//sin(
2πt)
「」「補:
numpy 提供了標準的三角函式:sin(
)、cos(
)、tan(
)。import numpy as np
a = np.array([0
,30,45
,60,90
])print
('不同角度的正弦值:'
)# 通過乘 pi/180 轉化為弧度
print
(np.sin(a*np.pi/
180)
)print
('\n'
)print
('陣列中角度的余弦值:'
)print
(np.cos(a*np.pi/
180)
)print
('\n'
)print
('陣列中角度的正切值:'
)print
(np.tan(a*np.pi/
180)
)不同角度的正弦值:[0
.0.5
0.70710678
0.86602541.
]陣列中角度的余弦值:
[1.00000000e+00
8.66025404e-01
7.07106781e-01
5.00000000e-01
6.12323400e-17
]陣列中角度的正切值:
[0.00000000e+00
5.77350269e-01
1.00000000e+00
1.73205081e+00
1.63312394e+16
]「」」
line,
= ax.plot(t, s, color=
'blue'
, lw=2)
#lw:設定畫筆的粗細
numpy 數學函式
numpy 包含大量的各種數**算的函式,包括三角函式,算術運算的函式,複數處理函式等。
#sinx的函式圖
藝術畫筆見乾坤
matplotlib的原理或者說基礎邏輯是,用artist物件在畫布 canvas 上繪製 render 圖形。就和人作畫的步驟類似 準備一塊畫布或畫紙 準備好顏料 畫筆等製圖工具 作畫所以matplotlib有三個層次的api matplotlib.backend bases.figurecanv...
python學習打卡2
q a 1.起源與英國超現實主義喜劇團體 2.大約理解為相互交流。讀取指令並執行 3.是商數取整,是除法 4.10 3 10 3 1 模組名 小寫字母,單詞之間用 分割 如 logging 2 包名 小寫字母,單詞之間用 分割 如 logging 3 類名 單詞首字母大寫 如 python clas...
近期學習計畫與打卡2
疫情的緣故開始了網課的學習,學習的勁一下又上來了。總結一下最近的學習 還是不錯的 開始了leetcode刷題 從之前光學c 網課不會 以及除了書上和課上的 外 很少接觸其他的 的那一種對自己的不自信 再到刷題時候看題解 發現能夠追尋著 將題解翻譯出來 欣慰感一下就有了 從leetcode刷題過程中 ...