1

私は現在、いくつかのデータを含むnumpyマトリックスをプロットするpythonスクリプトを書いています(計算に問題はありません)。そのデータの作成方法に関係する複雑な理由により、ターミナルを経由する必要があります。を使用して、Spyderでこのような問題を100万回実行しましたimshow()。だから、ターミナルでも同じことをしようと思った。これが私のコードです:

      from numpy import *
      from matplotlib import *

      def make_picture():
          f = open("DATA2.txt")
          arr = zeros((200, 200))
          l = f.readlines()
          for i in l:
              j = i[:-1]
              k = j.split(" ")
              arr[int(k[0])][int(k[1])] = float(k[2])
          f.close()
          imshow(arr)

      make_picture()

言うまでもなく、配列のものは問題なく動作します。私はそれをテストしましたが、データを完全にうまく抽出します。それで、この 200 x 200 の数値の配列が RAM に浮かんでいて、それを表示したいと思います。このコードを Spyder で実行すると、まさに期待どおりの結果が得られます。ただし、ターミナルでこのコードを実行すると、次のエラー メッセージが表示されます。

      Traceback (most recent call last):
        File "DATAmine.py", line 15, in <module>
          make_picture()
        File "DATAmine.py", line 13, in make_picture
          imshow(arr)
      NameError: global name 'imshow' is not defined

(私のプログラムは DATAmine.py と呼ばれます) ここでの契約は何ですか? 他にインポートする必要があるものはありますか? Spyder パスを構成する必要があることはわかっているので、それらのパスなどにアクセスできないのではないかと思います。どんな提案でも大歓迎です。ありがとう!

PSおそらく、Ubuntuを使用していることに言及する必要があります。それが関連しているかどうかはわかりません。

4

1 に答える 1

1

あなたの人生を楽にするためにあなたが使うことができます

from pylab import *

これにより、matplotlib と numpy を含む完全な pylab パッケージがインポートされます。

乾杯

于 2014-10-21T02:37:19.447 に答える