我可以使用以下任一方法在Python中绘图:
import matplotlib
matplotlib.pyplot.plot(...)
或者:
import pylab
pylab.plot(...)
这两者都使用matplotlib
.
推荐哪种方法作为正确的绘图方法?为什么?
我可以使用以下任一方法在Python中绘图:
import matplotlib
matplotlib.pyplot.plot(...)
或者:
import pylab
pylab.plot(...)
这两者都使用matplotlib
.
推荐哪种方法作为正确的绘图方法?为什么?
官方文档:Matplotlib、pyplot 和 pylab:它们有什么关系?
这两个导入归结为做完全相同的事情并且将运行完全相同的代码,只是导入模块的不同方式。
另请注意,它matplotlib
有两个接口层,一个由管理的状态机层和构建在其之上pyplot
的 OO 接口,请参阅如何将 pyplot 函数附加到图形实例?pyplot
pylab
是将大量有用的功能(pyplot
状态机功能,大部分numpy
)批量导入单个名称空间的一种干净方法。这存在的主要原因(据我了解)是ipython
为了制作一个非常好的交互式 shell,它或多或少地复制了 MATLAB(使转换更容易,因为它适合玩耍)。见pylab.py
和matplotlib/pylab.py
在某种程度上,这纯粹是一个品味问题,并且有点取决于你在做什么。
如果您没有嵌入 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 主循环,而您应该导入的确切内容取决于您正在做什么。
从官方文档来看,如下图,推荐使用matplotlib.pyplot
. 这不是一个意见。
Matplotlib、pyplot 和 pylab上的文档:它们有什么关系?,其中也描述了 pyplot 和 pylab 之间的区别,指出:“虽然很多示例使用 pylab,但不再推荐。” .
由于大量导入全局命名空间可能会导致意外行为,因此强烈建议不要使用 pylab。请改用matplotlib.pyplot。