是否可以将 Python 解释器配置为使用 matplotlib and/or scipy 而无需预先添加 class 名称

Is it possible to configure Python interpreter to use matplotlib and/or scipy without prepending the class names

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

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

这给了我一个 NameError。

我的印象是这个函数是 matplotlib.pyplot 的一部分,但是他们甚至没有导入 matplotlib,只有 scipy,这表明这个 'plot' 函数是 scipy。我试图通过导入 matplotlib.pyplot 和 运行 代码来稍微修改他们的模块:

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

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

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

提前致谢。

在普通的 Python 2.7 中,我可以做到:

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

ipython --pylab我能做到

plot??
pyplot.plot??

表示 pyplot 已按名称和 * 导入。它与 numpynp*)相同。

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