雖然使用matplotlib.pyplot
模組很容易快速生成繪圖,但建議使用物件導向的方法,因為它可以更好地控制和自定義繪圖。matplotlib.axes.Axes
類中也提供了大多數函式。
使用更正式的物件導向方法背後的主要思想是建立圖形物件,然後只呼叫該物件的方法或屬性。這種方法有助於更好地處理其上有多個繪圖的畫布。
在物件導向的介面中,Pyplot
僅用於一些功能,如圖形建立,使用者顯式建立和跟蹤圖形和軸物件。在此級別,使用者使用Pyplot
建立圖形,通過這些圖形,可以建立一個或多個軸物件。然後,這些軸物件用於大多數繪圖操作。
首先,建立一個提供空畫布的圖形範例。
fig = plt.figure()
將軸新增到圖形中。add_axes()
方法需要一個4
個元素的列表物件,對應於圖形的左側,底部,寬度和高度。每個數位必須介於0
和1
之間 -
ax=fig.add_axes([0,0,1,1])
設定x
和y
軸的標籤以及標題 -
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
呼叫axes
物件的plot()
方法。
ax.plot(x,y)
如果使用的是Jupyter notebook,則需要加入%matplotlib inline
指令; pyplot
模組的show()
函式顯示圖形。
閱讀並執行以下程式碼 -
#! /usr/bin/env python
#coding=utf-8
from matplotlib import pyplot as plt
import numpy as np
import math
# 顯示中文設定...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字型)
plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標軸負數的負號顯示問題)
%matplotlib inline
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("正弦波")
ax.set_xlabel('角度')
ax.set_ylabel('正弦')
plt.show()
上面的程式碼行生成以下輸出 -
在Jupyter notebook中執行時相同的程式碼 -
#! /usr/bin/env python
#coding=utf-8
from matplotlib import pyplot as plt
import numpy as np
import math
# 顯示中文設定...
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字型)
plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標軸負數的負號顯示問題)
%matplotlib inline
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("正弦波")
ax.set_xlabel('角度')
ax.set_ylabel('正弦')
plt.show()
顯示輸出如下所示 -