matplotlib 命令式与面向对象的语法
示例
Matplotlib支持绘图的面向对象和命令式语法。命令式语法被故意设计为非常类似于Matlab语法。
命令式语法(有时称为“状态机”语法)发出一串命令,所有命令都作用于最新图形或轴(如Matlab)。另一方面,面向对象的语法显式作用于感兴趣的对象(图,轴等)。Python禅宗中的一个关键点指出,显式要比隐式好,因此面向对象的语法更具pythonic性。但是,命令式语法对于从Matlab进行的新转换以及编写小的“丢弃”绘图脚本很方便。下面是两种不同样式的示例。
importmatplotlib.pyplotas plt import numpy as np t = np.arange(0, 2, 0.01) y = np.sin(4 *np.pi* t) # Imperative syntax plt.figure(1) plt.clf() plt.plot(t, y) plt.xlabel('Time (s)') plt.ylabel('Amplitude (V)') plt.title('Sine Wave') plt.grid(True) # Object oriented syntax fig = plt.figure(2) fig.clf() ax = fig.add_subplot(1,1,1) ax.plot(t, y) ax.set_xlabel('Time (s)') ax.set_ylabel('Amplitude (V)') ax.set_title('Sine Wave') ax.grid(True)
两个示例都产生相同的图,如下所示。