NameError:全局名称' imshow'未定义,但导入了Matplotlib

时间:2014-10-21 00:04:48

标签: python numpy matplotlib terminal imshow

我目前正在编写一个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()

我只想说,数组的工作正常。我已经对它进行了测试,它可以很好地提取数据。所以,我已经在我的RAM周围放了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路径,所以我想知道我是否无法访问这些路径或其他东西。任何建议将不胜感激。谢谢!

P.S。也许我应该提到我使用的是Ubuntu。不知道这是否相关。

1 个答案:

答案 0 :(得分:1)

为了让您的生活更轻松,您可以使用

from pylab import *

这将导入完整的pylab包,其中包括matplotlib和numpy。

干杯