【问题标题】:What is the difference between pylab and pyplot? [duplicate]pylab 和 pyplot 有什么区别? [复制]
【发布时间】:2012-07-13 05:40:21
【问题描述】:

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

什么用途首选哪个?

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

【问题讨论】:

  • 这个问题被标记为重复,因为另一个不建议使用pylab,根据官方文档。看到这个answer

标签: python matplotlib plot


【解决方案1】:

文档中不再有此措辞。

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


来自documentation,重点是我的:

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

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

Pylab 将 pyplot 功能(用于绘图)与 numpy 功能(用于数学和处理数组)结合在一个命名空间中,使该命名空间(或环境)更加类似于 MATLAB。例如,您可以像在 MATLAB 中一样调用 sin 和 cos 函数,并且具有 pyplot 的所有功能。

pyplot 界面通常首选用于非交互式绘图(即脚本)。 pylab 界面便于交互式计算和绘图,因为它最大限度地减少了输入。请注意,如果您将 ipython shell 与 -pylab 选项一起使用,这就是您得到的结果,该选项从 pylab 导入所有内容并使绘图完全交互。

【讨论】:

  • 来自matplotlib faq 似乎他们不喜欢 pylab:“pylab 是一个方便的模块,它以单个名称批量导入 matplotlib.pyplot(用于绘图)和 numpy(用于数学和处理数组) 虽然很多例子使用pylab,但不再推荐。"
  • @Reb.Cabin matplotlib.org/examples/api/agg_oo.html 面向对象接口背后的想法是不使用plt.figure() plt.plot(x,y)...而是创建一个图形,在图形中添加一个轴并添加一个绘制到轴。它是面向对象的,因为不是引用 plt.* 并让 pyplot 猜测您所指的图形,而是您(开发人员)负责引用 Figure 或 Axes 对象。
猜你喜欢
  • 2013-01-11
  • 2015-11-23
  • 2013-02-13
  • 2011-04-26
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多