14

このトピックに関する他の投稿を見てきましたが、明確な答えは見つかりませんでしたが、単純なものだと確信しています。

私のコードには次の構造があります...

import matplotlib
...
...

class xyz:
    def function_A(self,...)
        ...
        ...
        fig1 = matplotlib.figure()
        ...
        ...

「xyz」のインスタンスから「function_A」を呼び出しています。実行すると、次のエラー メッセージが表示されます。

AttributeError: 'module' object has no attribute 'figure'

私が読んだ投稿に基づいて、matplotlib をインポートする方法に問題があるように思えますが、整理できません。Function_A 定義内にインポートしようとしましたが (これは悪い形式だと思いますが、テストしたかったのです)、それでも同じエラーが発生します。

「function_A」コードを他の場所で問題なく使用しましたが、それはモジュール内の単なる関数であり、クラス内のメソッドではありませんでした。

どんな助けでも大歓迎です!

4

1 に答える 1

28

私はあなたが正しいと思います、そしてそれは輸入の問題です。モジュールには関数ありmatplotlibません:figure

>>> import matplotlib
>>> matplotlib.figure
Traceback (most recent call last):
  File "<ipython-input-130-82eb15b3daba>", line 1, in <module>
    matplotlib.figure
AttributeError: 'module' object has no attribute 'figure'

図形関数は、より深い位置にあります。取り込む方法はいくつかありますが、通常のインポートは次のようになります。

>>> import matplotlib.pyplot as plt
>>> plt.figure
<function figure at 0xb2041ec>

matplotlib galleryにある例など、Web 上にあるほとんどの例で使用されているため、この習慣に固執することをお勧めします。(ギャラリーは今でも、何かを行う方法を理解する必要があるときに最初にアクセスする場所です。目的の画像を見つけて、コードを確認します。)

于 2013-04-19T16:32:32.737 に答える