matplotlib – axes的使用方法以及圖表的客製化

應用篇

上一次介紹了figure以及axes的基礎使用方法。這一次要來介紹axes的各式各樣的使用方式。最後也會簡單說明add_subplot的意思。

圖表的構成元素

首先圖表有:棒狀圖,圓餅圖,點圖,散佈圖等等。這些圖表雖然長得都不一樣,不過還是有一些共通的項目。例如下面的這些項目。

  • 標題
  • 格線
  • X, Y軸範圍
  • X, Y軸名稱
  • 圖例

這些元素都可以利用matplotlib中的axes來設定

接著要來說明應該怎麼樣設定axes。下面會先分開舉例,最後會把代碼也一起附上去,如果有問題的人也可以試著自己稍微變更一下代碼來看看有哪裡改變了!

標題

在設定圖表標題的時候我們會使用set_title來設定。例如下面的代碼。

ax.set_title('圖表標題')

格線(方格)

方格的設定方式是將grid中的條件設定成True就可以了。如果不需要格線的話這個代碼不需要另外打。

ax.grid(True)

X軸, Y軸範圍

設定X軸, Y軸範圍的時候會分別用到set_xlim以及set_ylim。

#範圍從-5~5
ax.set_xlim(left = -5, right = 5)
#範圍從-3~3
ax.set_ylim(bottom = -3, top = 3)

X軸, Y軸名稱

設定X軸, Y軸名稱的時候會分別用到set_xlabel以及set_ylabel。

ax.set_xlabel('X軸名稱')
ax.set_ylabel('Y軸名稱')

圖例

在設定圖例時會用到legend,如果同時有複數個圖例的話只要用“,”來分割就行了。另外要記住因為圖例是“文字”,所以必須寫在”裡面。

ax.legend('圖例1', '圖例2', ...)

axes的實例

這邊我們來利用上面介紹到的方法來畫一個圖表。這個圖表名稱為Title,X軸範圍為-3~5,Y軸範圍為-3~11,有格線,X軸Y軸名稱分別為x, y圖例名稱為f(x) = x和t(x) = 2x+1。

import matplotlib.pyplot as plt

# 製作figure  
fig = plt.figure()   

#圖表的設定
ax = fig.add_subplot(1, 1, 1)
x1 = [3, 0 ,5]
y1 = [3, 0 ,5]
ax.plot(x1, y1)

x2 = [-2, 7, 5]
y2 = [-3, 15, 11]
ax.plot(x2, y2)

ax.grid(True)
ax.set_xlim(left=-3, right=5)
ax.set_ylim(bottom=-3, top=11)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Title')
ax.legend(['f(x) = x', 't(x) = 2x+1'])


plt.show() 

執行之後結果就會像下面這樣。

圖表的製作方式就到這邊,接著來簡單說明一下add_subplot。

add_subplot中的數字代表的意思

首先,我們現將add_subplot中的數字設定為(1, 1, 1),也就是設定成下面的代碼之後執行看看。

import matplotlib.pyplot as plt

# 製作figure  
fig = plt.figure()   

#圖表的設定
ax = fig.add_subplot(1, 1, 1)
plt.show() 

執行之後會出現下面的圖。

add_subplot(1, 1, 1)中的數字分別代表著(行, 列, 位置)。現在因為數字是(1, 1, 1),所以可以想成一個視窗中只有一行一列,理所當然的位置當然也只有一個,所以出現了一個大視窗。接著我們試著把括號中的數字改成(3, 3, 5)試試看會發生什麼事。

將數字設為(3, 3, 5)之後圖變成了下面這樣。

這代表了什麼意思呢?因為(3, 3, 5)代表的是3行3列的第五個位置,也就是九宮格中的中間的位置,也因為視窗的大小是固定的,因此圖的大小才會縮小。

如果是不了解的話可以試著將括號裡的數字更改看看!

留言