pylab和pyplot有什么区别?

Cla*_*aus 170 python plot matplotlib

matplotlib.pyplot和matplotlib.pylab有什么区别?

哪种用法更受青睐?

我有点困惑,因为它似乎独立于我导入,我可以做同样的事情.我错过了什么?

Hoo*_*ked 140

该措辞不再出现在文档中.

pylab现在不鼓励使用导入,建议将OO接口用于大多数非交互式使用.


文档中,重点是我的:

Matplotlib是整个包; pylab是matplotlib中的一个模块,与matplotlib一起安装; 和matplotlib.pyplotmatplotlib中的一个模块.

Pyplot为matplotlib中的底层绘图库提供状态机接口.这意味着隐式地和自动地创建图形和轴以实现期望的图.例如,从pyplot调用plot将自动创建必要的图形和轴以实现所需的图形.然后设置标题将自动将该标题设置为当前轴对象:

Pylab结合pyplot功能(绘图)与numpy的功能(数学和用于使用数组)在一个单一的命名空间,使该命名空间(或环境)更MATLAB状.例如,可以像在MATLAB中一样调用sin和cos函数,以及具有pyplot的所有功能.

所述pyplot接口通常优选用于非交互式绘图(即,脚本).该pylab接口方便交互式计算和绘图,因为它最大限度地减少打字.请注意,如果您将ipython shell与-pylab选项一起使用,即可从pylab导入所有内容并使绘图完全交互,这就是您所获得的.

  • @ Reb.Cabin http://matplotlib.org/examples/api/agg_oo.html面向对象接口背后的想法是不使用`plt.figure()``plt.plot(x,y)`...而是创建一个图,将Axes添加到图中并向Axes添加一个图.它是面向对象的,因为不是引用"plt.*"而是让pyplot猜测你指的是什么,你(开发人员)负责引用Figure或Axes对象. (8认同)
  • oo界面 (5认同)
  • 链接已经腐烂,我认为`pyplot`不应该用于编写脚本,如果你试图做任何花哨的东西,状态机会搞乱你. (4认同)
  • 来自[matplotlib faq](http://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related)似乎他们不喜欢pylab:"pylab是一个便利模块批量导入matplotlib.pyplot(用于绘图)和numpy(用于数学和使用数组)在单个名称空间中.*虽然许多示例使用pylab,但不再推荐使用它.*" (3认同)