2013-02-11 89 views
21

我可以导入matplotlib但是当我尝试运行以下命令:matplotlib有没有属性“pyplot”

matplotlib.pyplot(x) 

我得到:

Traceback (most recent call last): 
    File "<pyshell#31>", line 1, in <module> 
     matplotlib.pyplot(x) 
AttributeError: 'module' object has no attribute 'pyplot' 

回答

26

pyplotmatplotlib一个子模块,没有按不会用简单的import matplotlib进口。

>>> import matplotlib 
>>> print matplotlib.pyplot 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'pyplot' 
>>> import matplotlib.pyplot 
>>> 

似乎习惯做的事情:import matplotlib.pyplot as plt此时您可以使用各种功能和类包含:

p = plt.plot(...) 
+0

尝试这个最初,得到一个ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_path.so,2):没有找到合适的图像。发现: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/m – hanachronism 2013-02-11 13:24:55

+1

这看起来像您的安装已损坏,也许尝试干净的重新安装。 – 2013-02-11 13:38:58

+0

解决了......显然,安装程序中的当前matplotlib版本与64位版本的Python如此下载的32位版本不兼容,并且现在完美工作。感谢您的帮助。 – hanachronism 2013-02-11 13:44:49

11

你进口吗?仅输入matplotlib是不够的。

>>> import matplotlib 
>>> matplotlib.pyplot 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'pyplot' 

>>> import matplotlib.pyplot 
>>> matplotlib.pyplot 

作品。

pyplot是matplotlib的子模块,导入matplotlib时不会立即导入。

进口pyplot最常见的形式是

import matplotlib.pyplot as plt 

因此,您的报表将不会太长,例如

plt.plot([1,2,3,4,5]) 

代替

matplotlib.pyplot.plot([1,2,3,4,5]) 

和:pyplot不是一个函数,这是一个模块!所以不要调用它,而是使用里面定义的功能来代替。看到我上面的例子

+0

已经试过这个,这不是问题。解决了......显然,安装程序的当前matplotlib版本与64位版本的Python不兼容,因此下载的32位版本现在可以完美工作。感谢您的帮助。 – hanachronism 2013-02-11 13:46:41

+0

当然,请始终安装与您的解释器版本相对应的库的版本... – 2013-02-11 13:48:17