matplotlib理解對象,axes

在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當中。


 

發佈了67 篇原創文章 · 獲贊 49 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章