是否可以将Python解释器配置为使用matplotlib和/或scipy而不附加类名?



我正在使用一个python包(SloppyCell),它严重依赖于scipy和matplotlib中python绘图工具的使用。在这个软件中,他们多次使用了这些模块的功能,但没有指定它们来自哪个类。例如,他们使用了:

plot(traj.timepoints, result, 'k--', linewidth=3,zorder = 10)

给了我一个NameError。

我觉得这个函数应该是matplotlib的一部分。Pyplot,但是他们甚至没有导入matplotlib,只有scipy,这表明这个'plot'函数是scipy的一部分。我试图通过导入matplotlib稍微修改他们的模块。并以如下方式运行代码:

matplotlib.pyplot.plot(traj.timepoints, result, 'k--', linewidth=3,zorder = 10)

但我得到完全相同的'NameError:全局名称'plot'未定义'。这是更不寻常的(对我来说),因为当我在SloppyCell之外使用这个函数时,它工作得很好。

该软件显然适用于其他人,因为他们已经发表了使用该代码的论文。因此,直觉告诉我们,有一种方法可以让python解释器识别出这个(以及其他类似的函数),而无需在它来自的类的名称前加上前缀。有人知道这是否可能吗?或者,有没有人认为我遗漏了其他问题?

提前感谢。

在普通Python 2.7中,我可以这样做:

>>> from matplotlib import pyplot
>>> pyplot.plot
<function plot at 0xb4fe35a4>

ipython --pylab中我可以做

plot??
pyplot.plot??

表示pyplot已通过名称和*同时导入。numpy (np*)也是如此。

import numpy as np允许访问所有numpy子模块。但是对于scipy,您可以选择性地导入它们(例如from scipy import sparse)。我不熟悉matplotlib,但它看起来像遵循scipy模型。

最新更新