2015-11-20 37 views
0
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() 

我得到一個錯誤「類型的錯誤:‘浮動’對象不是可調用的」 我如何可以繪製與它X1這一行?繪製與列表中的線方程

+0

也許與你的錯誤無關,但'numpy.genfromtxt'可以更簡單地讀取該文件。它也可以捕獲數據文件中的任何可能的非數字條目 – tom

回答

0

的問題是,你在這裏失蹤操作:

plt.plot(2.53+9.33(x) for x in x1) 

您需要使用

plt.plot(2.53+9.33*(x) for x in x1) 

因爲9.33()不是一個可調用的函數:

>>> 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 
+0

這可能解決了最初的問題,但現在它的名字「float() –

+0

它說」float()參數必須是字符串或數字「 –

+0

您需要包括完整的回溯,因爲你已經改變了你的代碼,我不知道這個新的錯誤是什麼,我的猜測是你的數據有一個非數值的地方,不能轉換爲浮點數。 – LegendaryDude