当前位置: 首页 > 面试题库 >

推荐哪种绘制方式:matplotlib或pylab?[关闭]

储峻
2023-03-14
问题内容

已关闭 。这个问题是基于观点的。它当前不接受答案。

想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。

2年前关闭。

改善这个问题

我看到我可以使用以下任一方法Python中* 进行 绘图*

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

要么:

import pylab
pylab.plot(...)

两者都使用相同的 matplotlib 绘图代码。

那么,Matplotlib开发人员/文档当前建议使用哪种方法作为更好的绘图方法?为什么?


问题答案:

官方文档:Matplotlib,pyplot和pylab:它们之间有什么关系?

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

还要注意,它matplotlib有两个接口层,一个由其管理的状态机层,一个基于pyplot该接口的OO接口pyplot,请参见如何将pyplot函数附加到图形实例?

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

是一个好的开始。

如果您要嵌入matplotlibgui,则不要导入pyplot,因为那样会启动额外的gui主循环,确切的导入内容取决于您正在执行的操作。



 类似资料:
  • 问题内容: 我看到我可以使用以下任一方法在Python中进行绘图: 要么: 两者都使用相同的matplotlib绘图代码。 那么,Matplotlib开发人员/文档当前建议使用哪种方法作为更好的绘图方法?为什么? 问题答案: 官方文档:Matplotlib,pyplot和pylab:它们之间有什么关系? 这两个导入都可以做完全相同的事情,并且将运行完全相同的代码,这只是导入模块的不同方式。 还要注

  • 我可以使用以下任意一种方式在Python中绘图: 或: 两者都使用。 推荐哪种方法作为正确的绘图方法?为什么?

  • 本文向大家介绍实现异步编程有哪些方式?推荐用哪种?相关面试题,主要包含被问及实现异步编程有哪些方式?推荐用哪种?时的应答技巧和注意事项,需要的朋友参考一下 回调函数: 最传统的异步处理,下一步的操作交给前一步来控制。当要处理的内容较多时,会出现回调地狱。代码会比较难维护和处理。 Generator: 通过迭代器来实现异步操作。 Promise: ES6 新增特性。通过 和 来实现异步操作。 asy

  • web端的支付形式有哪些?推荐哪种?

  • 主要内容:基本绘图PyLab 是一个面向 Matplotlib 的绘图库接口,其语法和 MATLAB 十分相近。它和 Pyplot 模快都够实现 Matplotlib 的绘图功能。PyLab 是一个单独的模块,随 Matplotlib 软件包一起安装,该模块的导包方式和 Pyplot 不同,如下所示: PyLab 是一个很便捷的模块,下面对它的使用方法做相应的介绍。 基本绘图 提供一对相同长度的数组(或序列),然后

  • 问题内容: 最近几天,我一直在与Numpy和matplotlib一起玩。我在尝试使matplotlib绘制函数而不阻止执行时遇到问题。我知道这里已经有很多线程在问类似的问题,并且我已经在Google上搜索了很多,但是没有设法使这项工作有效。 我曾尝试按照某些人的建议使用show(block = False),但是我得到的只是一个冻结的窗口。如果我简单地调用show(),则将正确绘制结果,但执行将被