官方文档: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.py和matplotlib/pylab.py 在某种程度上,这纯粹是一个品味问题,有点取决于你在做什么。 如果你不是在GUI中嵌入(或者使用非交互式后端进行批量脚本,或者使用所提供的交互式后端之一),典型的做法是
import matplotlib.pyplot as plt
import numpy as np
plt.plot(....)
2条答案
按热度按时间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.py
和matplotlib/pylab.py
在某种程度上,这纯粹是一个品味问题,有点取决于你在做什么。
如果你不是在GUI中嵌入(或者使用非交互式后端进行批量脚本,或者使用所提供的交互式后端之一),典型的做法是
这不会污染命名空间。我更喜欢这样,这样我就可以跟踪东西的来源。
如果你用
这相当于运行
现在建议对于新版本的
ipython
使用这将设置所有适当的背景细节,使交互式后端很好地工作,但不会批量导入任何东西。您需要显式导入所需的模块。
是个好的开始
如果你在一个gui中嵌入
matplotlib
,你不想导入pyplot,因为这会启动额外的gui主循环,你应该导入什么取决于你正在做什么。5ssjco0h2#
官方文档明确推荐使用
matplotlib.pyplot
。API documentation仍然提到了
pylab
模块,但建议不要使用它。1由于大量导入全局命名空间可能会导致意外行为,因此强烈建议使用pylab。请使用
matplotlib.pyplot
。Quick start guide也不赞成使用
pylab
模块。你可以通过from pylab import * 找到使用pylab接口的旧示例。强烈反对这种方法。
1.据我所知,此建议是在February 7th, 2020上添加的