当前位置: 首页 > 知识库问答 >
问题:

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

冯德宇
2023-03-14

我可以使用以下任意一种方式在Python中绘图:

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

或:

import pylab
pylab.plot(...)

两者都使用matplotlib

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

共有2个答案

卫昊东
2023-03-14

根据官方文件,如下所示,建议使用matplotlib。pyplot。这不是一种观点。

Matplotlib的留档、pyplod和pylab:它们是如何相关的?,其中也描述了pyplod和pylab之间的区别,指出:“虽然许多例子使用pylab,但不再推荐。”

  • 从pylab API(不批准)

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

傅正豪
2023-03-14

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

这两种导入归结起来做完全相同的事情,运行完全相同的代码,只是导入模块的方式不同而已。

还要注意matplotlib有两个接口层,一个由pyplod管理的状态机层,而OO接口pyplod是在其之上构建的,请参阅如何将pyplod函数附加到图形实例?

pylab是一种将大量有用函数(大部分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

这是一个好的开始。

如果要在gui中嵌入matplotlib,则不希望导入pyplot,因为这将启动额外的gui主循环,并且应该导入的内容完全取决于您正在执行的操作。

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

  • 问题内容: 已关闭 。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我看到我可以使用以下任一方法在 Python中* 进行 绘图 : * 要么: 两者都使用相同的 matplotlib 绘图代码。 那么,Matplotlib开发人员/文档当前建议使用哪种方法作为更好的绘图方法?为什么? 问题答案: 官

  • 在过去的几天里,我一直在玩Numpy和matplotlib。我有问题试图使matplotlib图函数不阻塞执行。我知道已经有很多线程在SO上问类似的问题,我已经谷歌了很多,但还没有成功。 我尝试过使用show(block=False),就像一些人建议的那样,但我得到的只是一个冻结的窗口。如果我简单地调用show(),结果会被正确绘制,但执行会被阻止,直到窗口关闭。从我读过的其他线程中,我怀疑sho

  • 我是matplotlib的初学者,如果这看起来像一个愚蠢的问题,我很抱歉。 我有一个csv文件,其中包含深度学习模型不同层中单个神经元的权重值。由于我的模型中有四个层,因此文件结构如下所示: weight_1weight_2weight_n weight_1weight_2weight_n weight_1weight_2weight_n weight_1weight_2weight_n 正如你所

  • 问题内容: 我想将图像列表读入Python / Matplotlib,然后在图形中绘制此图像而不是其他标记(如点)。我曾尝试使用imshow,但未成功,因为我无法将图像移到另一个位置并适当缩放。也许有人有一个好主意:) 问题答案: 有两种方法可以做到这一点。 根据希望的位置,使用带有kwarg集的图像进行绘制。 在里面使用。 第一种方法最容易理解,但是第二种方法具有很大的优势。k注解框方法将使图像

  • 本文向大家介绍React组件命名推荐的方式是哪个?为什么不推荐使用displayName?相关面试题,主要包含被问及React组件命名推荐的方式是哪个?为什么不推荐使用displayName?时的应答技巧和注意事项,需要的朋友参考一下 [react] React组件命名推荐的方式是哪个?为什么不推荐使用displayName?