Python 推荐的绘图方式是matplotlib还是pylab?

Python 推荐的绘图方式是matplotlib还是pylab?,python,matplotlib,Python,Matplotlib,我可以在Python中使用以下任一方法绘制: import matplotlib matplotlib.pyplot.plot(...) 或: 两者都使用matplotlib 推荐哪种方法作为正确的绘图方法?为什么?官方文件: 这两种导入归结起来做完全相同的事情,运行完全相同的代码,只是导入模块的方式不同而已 还要注意的是,matplotlib有两个接口层,一个由pyplot管理的状态机层,OO接口pyplot构建在上面,请参见 pylab是一种将大量有用函数(大部分numpy状态机函数)批量

我可以Python中使用以下任一方法绘制

import matplotlib
matplotlib.pyplot.plot(...)
或:

两者都使用
matplotlib

推荐哪种方法作为正确的绘图方法?为什么?

官方文件:

这两种导入归结起来做完全相同的事情,运行完全相同的代码,只是导入模块的方式不同而已

还要注意的是,
matplotlib
有两个接口层,一个由
pyplot
管理的状态机层,OO接口
pyplot
构建在上面,请参见

pylab
是一种将大量有用函数(大部分
numpy
状态机函数)批量导入单个名称空间的干净方法。(据我所知)存在这种情况的主要原因是与
ipython
一起工作,制作一个非常好的交互式shell,它或多或少地复制了MATLAB(使转换更容易,因为它有利于游戏)。看到和

在某种程度上,这纯粹是一个品味的问题,有点取决于你在做什么

如果您没有嵌入到gui中(对于批量脚本使用非交互式后端,或者使用提供的一个交互式后端),典型的做法是

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)
这不会污染名称空间。我更喜欢这个,这样我就可以知道东西是从哪里来的

如果你使用

ipython --pylab
这相当于跑步

from pylab import * 
现在建议对于新版本的
ipython
使用

ipython --matplotlib
这将设置所有适当的背景细节,使交互式后端工作良好,但不会批量导入任何内容。您需要显式导入所需的模块

import numpy as np
import matplotlib.pyplot as plt
这是一个好的开始


如果将
matplotlib
嵌入到gui中,则不希望导入pyplot,因为这将启动额外的gui主循环,并且应该导入的内容取决于您正在执行的操作。

从官方文档中,如下所示,建议使用这不是一种意见。

位于的文档也描述了pyglot和pylab之间的区别,其中指出:“尽管许多示例使用pylab,但不再推荐它。”

2021-05-06编辑:
由于大量导入全局命名空间可能会导致意外行为,因此强烈建议不要使用pylab。改用


pylab和pyplot之间的区别在于前者将numpy导入其名称空间。这是为了使它的行为更类似于matlab。现在首选使用pyplot而不是pylab,因为它更干净。这不应该以基于意见的方式关闭。Matplotlib文档现在给出了一个明确的答案:始终使用
Matplotlib.pyplot
import numpy as np
import matplotlib.pyplot as plt