推荐的绘图方式是 matplotlib 还是 pylab?
- 2025-03-05 09:14:00
- admin 原创
- 96
问题描述:
我可以使用以下任一方式在Python中绘图:
import matplotlib
matplotlib.pyplot.plot(...)
或者:
import pylab
pylab.plot(...)
这两种都使用matplotlib
。
哪种方法被推荐为正确的绘图方法?为什么?
解决方案 1:
官方文档: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 主循环,而您应该导入的具体内容取决于您正在做的事情。
解决方案 2:
官方文档明确建议使用matplotlib.pyplot
。
API 文档仍然提到该pylab
模块,但建议不要使用它。1
由于大量导入全局命名空间可能会导致意外行为,因此强烈建议不要使用 pylab。请改用
matplotlib.pyplot
。
快速入门指南也不赞成使用该pylab
模块。
您可能会发现使用 pylab 接口的旧示例,通过 from pylab import *。这种方法已被强烈反对。
据我所知,此建议于2020 年 2 月 7 日添加
扫码咨询,免费领取项目管理大礼包!