Python 2.7 在方程式中用列表绘制直线
我得到一个错误类型错误:“float”对象不可调用Python 2.7 在方程式中用列表绘制直线,python-2.7,matplotlib,Python 2.7,Matplotlib,我得到一个错误类型错误:“float”对象不可调用 如何用x1绘制这条线?问题是您缺少一个运算符: import matplotlib.pyplot as plt from math import * f2 = open('C:\\Users\\Audrey\\Documents\\Regress1Par data.txt', 'r') lines = f2.readlines() f2.close() x1 = [] y1 = [] z1 = [] for line in lines:
如何用x1绘制这条线?问题是您缺少一个运算符:
import matplotlib.pyplot as plt
from math import *
f2 = open('C:\\Users\\Audrey\\Documents\\Regress1Par data.txt', 'r')
lines = f2.readlines()
f2.close()
x1 = []
y1 = []
z1 = []
for line in lines:
p = line.split()
x1.append(float(p[0]))
y1.append(float(p[1]))
z1.append(float(p[2]))
plt.scatter(x1, y1)
yerr=z1
plt.errorbar(x1,y1,yerr=yerr, fmt='o')
plt.plot(2.53+9.33(x) for x in x1)
plt.show()
你需要使用
plt.plot(2.53+9.33(x) for x in x1)
因为9.33不是可调用函数:
plt.plot(2.53+9.33*(x) for x in x1)
这可能修复了最初的问题,但现在它说float,它说float参数必须是字符串或数字,您需要包含完整的回溯。我不知道新的错误是指什么,因为您已经更改了代码。我的猜测是,您的数据中有一个无法转换为浮点的非数值。可能与您的错误无关,但numpy.genfromtxt可以更简单地读取该文件。它还可以捕获数据文件中任何可能的非数字项
>>> 2.59+9.33(x)
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
2.59+9.33(x)
TypeError: 'float' object is not callable