Matplotlib - 面向对象接口



虽然使用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')

调用坐标轴对象的plot()方法。

ax.plot(x,y)

如果使用Jupyter notebook,则必须发出%matplotlib inline指令;否则,pyplot模块的show()函数将显示绘图。

考虑执行以下代码 -

from matplotlib import pyplot as plt
import numpy as np
import math
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("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

输出

以上代码行生成以下输出 -

Add Axes Method

在Jupyter notebook中运行相同的代码,显示的输出如下所示 -

Jupyter Notebook Output
广告

© . All rights reserved.