私は現在、いくつかのデータを含む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を使用していることに言及する必要があります。それが関連しているかどうかはわかりません。