I can import matplotlib but when I try to run the following:
matplotlib.pyplot(x) I get:
Traceback (most recent call last): File "<pyshell#31>", line 1, in <module> matplotlib.pyplot(x) AttributeError: 'module' object has no attribute 'pyplot' 2 Answers
pyplot is a sub-module of matplotlib which doesn't get imported with a simple 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 >>> It seems customary to do: import matplotlib.pyplot as plt at which time you can use the various functions and classes it contains:
p = plt.plot(...) 4Did you import it? Importing matplotlib is not enough.
>>> import matplotlib >>> matplotlib.pyplot Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'pyplot' but
>>> import matplotlib.pyplot >>> matplotlib.pyplot works.
pyplot is a submodule of matplotlib and not immediately imported when you import matplotlib.
The most common form of importing pyplot is
import matplotlib.pyplot as plt Thus, your statements won't be too long, e.g.
plt.plot([1,2,3,4,5]) instead of
matplotlib.pyplot.plot([1,2,3,4,5]) And: pyplot is not a function, it's a module! So don't call it, use the functions defined inside this module instead. See my example above