57

我可以导入 matplotlib,但是当我尝试运行以下命令时:

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'
4

2 回答 2

56

pyplot是一个子模块,matplotlib它不会通过简单的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(...)
于 2013-02-11T12:55:13.277 回答
41

你导入了吗?进口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不是一个函数,它是一个模块!所以不要调用它,而是使用这个模块中定义的函数。见我上面的例子

于 2013-02-11T12:56:38.303 回答