2013-02-11 55 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