私はPythonパッケージ(SloppyCell)を使っていますscipyとmatplotlib内でのpythonプロットツールの使用に大きく依存しています。このソフトウェアでは、これらのモジュールの機能をいくつか使用していますが、そのクラスを指定していません。例えば、彼らは以下を使用しました:
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:グローバル名"プロットは "定義されていません"を取得します。 これはSloppyCellの外でこの関数を使用するとうまく動作するので、これは(私にとっては)珍しいことです。
ソフトウェアは明らかに他の人々のために働く彼らはこのコードを使用した論文を発表しているからです。したがって、直感によれば、Pythonインタプリタは、それが来たクラスの名前を前に付けることなく、これ(と同様の他の関数)を認識させる方法があることを示唆しています。これが可能なら誰でも知っていますか?あるいは、私が紛失している他の問題があると誰も思うことができますか?
前もって感謝します。
回答:
回答№1は1単純な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
モデル。