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

lzfw57am  于 2023-04-21  发布在  其他
关注(0)|答案(2)|浏览(105)

我可以在Pythonplot,使用:

import matplotlib
matplotlib.pyplot.plot(...)

或者:

import pylab
pylab.plot(...)

这两个都使用matplotlib
哪种方法是推荐的正确绘图方法?为什么?

3zwtqj6y

3zwtqj6y1#

官方文档:Matplotlib、pyplot和pylab:它们之间有什么关系?
这两个导入归结起来做完全相同的事情,并将运行完全相同的代码,只是导入模块的方式不同。
还要注意,matplotlib有两个接口层,一个是由pyplot管理的状态机层,而pyplot是在之上构建的OO接口,请参见How can I attach a pyplot function to a figure instance?
pylab是批量导入大量有用函数的干净方法(pyplot状态机函数,numpy的大部分)到一个名称空间。这是存在的主要原因(据我所知)是使用ipython来制作一个非常好的交互式shell,它或多或少地复制了MATLAB(为了使转换更容易,因为它很适合玩)。参见pylab.pymatplotlib/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

是个好的开始
如果你在一个gui中嵌入matplotlib,你不想导入pyplot,因为这会启动额外的gui主循环,你应该导入什么取决于你正在做什么。

5ssjco0h

5ssjco0h2#

官方文档明确推荐使用matplotlib.pyplot
API documentation仍然提到了pylab模块,但建议不要使用它。1
由于大量导入全局命名空间可能会导致意外行为,因此强烈建议使用pylab。请使用matplotlib.pyplot
Quick start guide也不赞成使用pylab模块。
你可以通过from pylab import * 找到使用pylab接口的旧示例。强烈反对这种方法。
1.据我所知,此建议是在February 7th, 2020上添加的

相关问题