在matplotlib中,整個圖表爲一個figure對象。每個figure對象中可以包含一個或多個axes,而axes爲座標軸。每個axes對象都是一個擁有自己座標系統的繪圖區域。如下圖:
舉個例子
import matplotlib.pyplot as plt
from pylab import *
x = linspace(0, 5, 10)
y = x ** 2
fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # left, bottom, width, height (range 0 to 1) 前兩個參數表示在figure中的位置
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # inset axes
axes.plot(x, y, 'r')#參數3 爲設置顏色
axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('title')
# insert
axes2.plot(y, x, 'g')
axes2.set_xlabel('y')
axes2.set_ylabel('x')
axes2.set_title('insert title');
plt.show()
結果如圖 :
爲了加深對Matplotlib圖表的理解,我們可以參照下圖:
title爲圖像標題,Axis爲座標軸, Label爲座標軸標註,Tick爲刻度線,Tick Label爲刻度註釋。
同時各個對象之間有下列隸屬關係:
儘管data是數據繪圖的關鍵部分,也就是數據本身的圖形化顯示,但是必須和xaxis, yaxis, title一起,才能真正構成一個繪圖區域axes。一個單純的,無法讀出刻度的線是沒有意義的。xaxis, yaxis, title合起來構成了數據的輔助部分(data guide)。
圖像座標將一張圖的左下角視爲原點,將圖像的x方向和y方向總長度都看做1。x方向的0.2就是指20%的圖像在x方向的總長,y方向0.8的長度指80%的y方向總長。
(0.5, 0.5)是圖像的中點,(1, 1)指圖像的右上角。
在使用add_axes時,傳遞的參數中,前兩個元素爲axes的左下角在fig的圖像座標上的位置,後兩個元素指axes在fig的圖像座標上x方向和y方向的長度。fig的圖像座標稱爲Figure座標,儲存在爲fig.transFigure當中。