2013-02-11 28 views
21

posso importare matplotlib ma quando provo ad eseguire il seguente:matplotlib non ha alcun attributo 'pyplot'

matplotlib.pyplot(x) 

ottengo:

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

risposta

26

pyplot è un sotto-modulo matplotlib che doesn Si ottiene importato con un semplice 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 
>>> 

Sembra soliti fare: import matplotlib.pyplot as plt momento in cui è possibile utilizzare le varie funzioni e le classi in esso contenuti:

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

Provato inizialmente, ottenere un ImportError: dlopen (/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_path.so, 2): no trovata un'immagine adatta. Trovato: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/m – hanachronism

+1

Sembra che l'installazione sia corrotta, magari provare a reinstallarla. –

+0

Ha funzionato .. apparentemente l'attuale versione di matplotlib dal programma di installazione non è compatibile con la versione a 64 bit di Python, quindi ha scaricato la versione a 32 bit e funziona perfettamente ora. Grazie per l'aiuto però. – hanachronism

11

Hai importarlo? L'importazione di matplotlib non è sufficiente.

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

ma

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

opere.

pyplot è un sottomodulo di matplotlib e non viene immediatamente importato quando si importa matplotlib.

La forma più comune di importare pyplot è

import matplotlib.pyplot as plt 

Così, le sue dichiarazioni non saranno troppo lunghi, per esempio

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

invece di

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

E: pyplot non è una funzione, è un modulo! Quindi non chiamarlo, usa invece le funzioni definite all'interno di. Vedere il mio esempio sopra

+0

Aveva provato questo e non era il problema. Ha funzionato .. apparentemente l'attuale versione di matplotlib dall'installer non è compatibile con la versione a 64 bit di Python, quindi ha scaricato la versione a 32 bit e funziona perfettamente ora. Grazie per l'aiuto però. – hanachronism

+0

Certo, installa sempre la versione di una libreria corrispondente alla versione del tuo interprete ... –

Problemi correlati