首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >推荐的绘图方式是: matplotlib还是pylab?

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

Stack Overflow用户
提问于 2013-05-31 11:52:05
回答 2查看 38.9K关注 0票数 97

我可以使用以下任一方法在Pythonplot

代码语言:javascript
复制
import matplotlib
matplotlib.pyplot.plot(...)

或者:

代码语言:javascript
复制
import pylab
pylab.plot(...)

这两种方法都使用matplotlib

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-25 00:39:35

如下所示,从官方文档来看,建议使用matplotlib.pyplot这不是一个观点。

Matplotlib, pyplot and pylab: how are they related?上的文档也描述了pyplot和pylab之间的区别,它指出:“尽管许多示例使用pylab,但不再推荐它。”

2021-05-06编辑:

来自The pylab API (disapproved)

由于大量导入到全局命名空间中可能会导致意外的行为,因此强烈建议不要使用pylab。改为使用matplotlib.pyplot

票数 16
EN

Stack Overflow用户

发布于 2013-05-31 12:33:12

官方文档:Matplotlib, pyplot and pylab: how are they related?

这两个导入可以归结为做完全相同的事情,并将运行完全相同的代码,只是导入模块的方式不同。

还要注意,matplotlib有两个接口层,一个是由pyplot管理的状态机层,另一个是构建在之上的OO接口pyplot,请参见How can I attach a pyplot function to a figure instance?

pylab是一种干净的方法,可以将大量有用的函数( pyplot状态机函数,numpy的大部分)大容量导入到单个名称空间中。它存在的主要原因(据我所知)是为了与ipython合作制作一个非常好的交互式外壳,它或多或少地复制了MATLAB (使转换更容易,因为它很适合玩)。请参阅pylab.pymatplotlib/pylab.py

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

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

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

这不会污染名称空间。我更喜欢这样,这样我就可以跟踪这些东西的来源。

如果您使用

代码语言:javascript
复制
ipython --pylab

这等同于运行

代码语言:javascript
复制
from pylab import * 

现在,对于新版本的ipython,建议使用

代码语言:javascript
复制
ipython --matplotlib

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

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

是一个很好的开始。

如果你在一个gui中嵌入matplotlib,你不会想要导入pyplot,因为那会启动额外的gui主循环,你到底应该导入什么取决于你到底在做什么。

票数 106
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16849483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档