📜  Matplotlib-面向对象的接口

📅  最后修改于: 2020-11-08 07:24:30             🧑  作者: Mango


尽管使用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笔记本,则必须发出%matplotlib内联指令。 pyplot模块的otherwistshow()函数显示绘图。

考虑执行以下代码-

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

输出

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

添加轴方法

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

Jupyter笔记本输出