我在Python中有很长的代码,所以我不能在这里写出来。无论如何,问题是我正在使用semilogx
命令在代码中绘制一个函数,一切正常。但是,如果我切换到plot
命令,我收到此错误:
TypeError:'bool'对象不可调用
您认为可能会导致什么问题?
似乎我在代码中使用plot命令的任何地方都会得到相同的错误。 我尝试绘制我在代码中使用的第一个变量:
f=loadtxt(folder_out+"stars/stars"+str(output)+".txt",skiprows=2)
ids=f[:,0]
mass_star=f[:,1] # mass in Msun
x=f[:,2]
y=f[:,3]
z=f[:,4]
age=f[:,5] # age in Myr
plot(x,y,'.')
最后一行给了我错误。我确定我从文件中读取了变量,它们具有相同的维度。
答案 0 :(得分:8)
您的错误表明plot
不是您认为的函数,而是bool
(即。True
或False
,是布尔值的结果表达)。这可能有以下几个原因:
bool
分配给名为plot
的变量(可能在循环中 - 请记住Python中的循环和if
语句不会创建新范围)from whatever import *
语句,其中一个语句导入一个名为plot
的名称,这个名称来自pylab
(它甚至可能是from whatever import plot
没有注意到)您可以尝试通过对plot
的简单文本搜索来缩小范围,以查看您是否明确地执行此操作。您还可以删除导入并删除脚本,直到它按预期工作,并尝试识别有问题的行。