2013-05-13 53 views
3

我试图做一个情节:蟒“‘模块’对象不是可调用的”

from matplotlib import * 
import sys 
from pylab import * 

f = figure (figsize =(7,7)) 

但是,当我试图执行它,我得到这个错误:

File "mratio.py", line 24, in <module> 
    f = figure(figsize=(7,7)) 
TypeError: 'module' object is not callable 

我有之前运行一个类似的脚本,我想我已经导入了所有相关的模块。

+0

你有阴影'figure'别的东西? – tacaswell 2013-05-13 16:50:03

+0

运行'import pylab;打印pylab .__文件___并给我们结果 – 2013-05-13 16:52:47

+0

/home/apps/fas/Langs/Python/2.7.2/lib/python2.7/site-packages/matplotlib/pylab.pyc – mcglashan 2013-05-13 17:36:10

回答

5

figurematplotlib提供的模块。

您可以在Matplotlib documentation

阅读更多关于它,我想你想要的是matplotlib.figure.Figure(类,而不是模块)

这是documented here

from matplotlib import * 
import sys 
from pylab import * 

f = figure.Figure(figsize =(7,7)) 

from matplotlib import figure 
f = figure.Figure(figsize =(7,7)) 

from matplotlib.figure import Figure 
f = Figure(figsize =(7,7)) 

或获得pylab,而不与matplotlib冲突的工作:

from matplotlib import * 
import sys 
import pylab as pl 

f = pl.figure(figsize =(7,7)) 
+2

但是'figure'应该是'pylab'中的一个函数,所以这应该仍然有效。 – 2013-05-13 16:54:03

+0

@WinstonEwert我已经添加了另一个解决方案来允许'pylab'导入图形,而不会与'matplotlib'冲突 – Ewan 2013-05-13 16:57:59

+1

但是这并不能解释为什么'pylab'中的'figure'不能替代'matplotlib'的图形。它应该有。 – 2013-05-13 16:59:20

2

你需要做的:

matplotlib.figure.Figure 

这里,

matplotlib.figure is a package (module), and `Figure` is the method 

参考here

所以,你将不得不这样称呼它:

f = figure.Figure(figsize=(7,7)) 
相关问题