Matplotlib面向對象介面

雖然使用matplotlib.pyplot模組很容易快速生成繪圖,但建議使用面向對象的方法,因為它可以更好地控制和自定義繪圖。matplotlib.axes.Axes類中也提供了大多數函數。

使用更正式的面向對象方法背後的主要思想是創建圖形對象,然後只調用該對象的方法或屬性。這種方法有助於更好地處理其上有多個繪圖的畫布。

在面向對象的介面中,Pyplot僅用於一些功能,如圖形創建,用戶顯式創建和跟蹤圖形和軸對象。在此級別,用戶使用Pyplot創建圖形,通過這些圖形,可以創建一個或多個軸對象。然後,這些軸對象用於大多數繪圖操作。

首先,創建一個提供空畫布的圖形實例。

fig = plt.figure()

將軸添加到圖形中。add_axes()方法需要一個4個元素的列表對象,對應於圖形的左側,底部,寬度和高度。每個數字必須介於01之間 -

ax=fig.add_axes([0,0,1,1])

設置xy軸的標籤以及標題 -

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()

顯示輸出如下所示 -


上一篇: Matplotlib pylab模組 下一篇: Matplotlib Figure類