雖然使用matplotlib.pyplot模塊很容易快速生成繪圖,但建議使用面向?qū)ο蟮姆椒ǎ驗(yàn)樗梢愿玫乜刂坪妥远x繪圖。matplotlib.axes.Axes類中也提供了大多數(shù)函數(shù)。
使用更正式的面向?qū)ο蠓椒ū澈蟮闹饕枷胧莿?chuàng)建圖形對(duì)象,然后只調(diào)用該對(duì)象的方法或?qū)傩?。這種方法有助于更好地處理其上有多個(gè)繪圖的畫布。
在面向?qū)ο蟮慕缑嬷校琍yplot僅用于一些功能,如圖形創(chuàng)建,用戶顯式創(chuàng)建和跟蹤圖形和軸對(duì)象。在此級(jí)別,用戶使用Pyplot創(chuàng)建圖形,通過這些圖形,可以創(chuàng)建一個(gè)或多個(gè)軸對(duì)象。然后,這些軸對(duì)象用于大多數(shù)繪圖操作。
首先,創(chuàng)建一個(gè)提供空畫布的圖形實(shí)例。
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 fig = plt.figure()
將軸添加到圖形中。add_axes()方法需要一個(gè)4個(gè)元素的列表對(duì)象,對(duì)應(yīng)于圖形的左側(cè),底部,寬度和高度。每個(gè)數(shù)字必須介于0和1之間 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 ax=fig.add_axes([0,0,1,1])
設(shè)置x和y軸的標(biāo)簽以及標(biāo)題 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 ax.set_title("sine wave") ax.set_xlabel('angle') ax.set_ylabel('sine')
調(diào)用axes對(duì)象的plot()方法。
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 ax.plot(x,y)
如果使用的是 Jupyter notebook,則需要加入%matplotlib inline指令; pyplot模塊的show()函數(shù)顯示圖形。
閱讀并執(zhí)行以下代碼 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 #! /usr/bin/env python #coding=utf-8 from matplotlib import pyplot as plt import numpy as np import math # 顯示中文設(shè)置... plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字體) plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問題) %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中運(yùn)行時(shí)相同的代碼 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 #! /usr/bin/env python #coding=utf-8 from matplotlib import pyplot as plt import numpy as np import math # 顯示中文設(shè)置... plt.rcParams['font.sans-serif'] = ['SimHei'] # 步驟一(替換sans-serif字體) plt.rcParams['axes.unicode_minus'] = False # 步驟二(解決坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問題) %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()
顯示輸出如下所示 -