In the pyplot 教程 it says
在 matplotlib.pyplot 中,在函数调用之间保留各种状态,以便它跟踪当前图形和绘图区域等内容,并且绘图函数定向到当前轴
举个例子:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[4,6,5])
这使 pyplot 处于定义当前图形和当前轴的状态。随后发出一些其他 pyplot 命令,例如
plt.title("My title")
将设置存储在 pyplot 状态中的当前轴的标题。最后,
plt.show()
将显示 pyplot 状态中存储的所有图形。 (也相关:plt.show() 如何知道要显示什么?)
总的来说,基于状态的接口意味着 pyplot 有几个函数,它们将作用于当前定义的状态。这与使用对象方法的面向对象方法有根本的不同:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3],[4,6,5])
ax.set_title("My Title")
在这里,不同对象的方法用于创建新内容。 (该图仍然是通过 pyplot 创建的,因此最终可以通过plt.show()
.)