2015-04-23 54 views
2

我有一个简单的阴谋,其中包含arrays中的两个数据集,并试图使用回归来计算通过这些点的最佳拟合线。如何将最适合的线放到绘制的点上?

但是我得到的路线是向左和向上的数据点。

我如何才能找到合适的地方,并且还有其他提示和建议可供我的代码使用?

from pylab import * 

Is = array([-13.74,-13.86,-13.32,-18.41,-23.83]) 
gra = array([31.98,29.41,28.12,34.28,40.09]) 
plot(gra,Is,'kx') 
(m,b) = polyfit(Is,gra,1) 
print(b) 
print(m) 
z = polyval([m,b],Is) 
plot(Is,z,'k--') 

如果有人好奇,数据是硅晶体管在各种温度下的带隙。

回答

2

你必须小心,你通过哪个数组作为x坐标和哪个坐标为y。考虑你在位置x有数据值y。然后你必须评估多项式wrt。 x

from pylab import* 

Is = array([-13.74,-13.86,-13.32,-18.41,-23.83]) 
gra = array([31.98,29.41,28.12,34.28,40.09]) 

# rename the variables for clarity 
x = gra 
y = Is 

plot(x, y, 'kx') 
(m,b) = polyfit(x, y, 1) 
print(b) 
print(m) 
z = polyval([m,b], x) 
plot(x, z, 'k--') 
show() 
相关问题