NameError: 全局名 'imshow' 未定义,但已导入Matplotlib
我现在正在写一个Python脚本,这个脚本用来绘制一个包含一些数据的numpy矩阵(计算这些数据我没有遇到任何困难)。由于一些复杂的原因,跟我创建这些数据的方式有关,我必须通过终端来操作。我在Spyder中用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乘200的数字数组,我想把它显示出来。当我在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的路径,所以我在想我是否没有访问这些路径的权限。任何建议都非常感谢。谢谢!
附言:也许我应该提一下,我使用的是Ubuntu。不知道这是否相关。
1 个回答
1
为了让你的生活更简单,你可以使用
from pylab import *
这段代码会导入整个pylab包,里面包含了matplotlib和numpy这两个库。
祝好!