我有一个包含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--')
如果有人好奇,数据是不同温度下硅晶体管的带隙。
答案 0 :(得分:2)
您必须注意哪些数组作为x
坐标传递,哪些数据作为y
坐标。请注意,您在位置y
处拥有数据值x
。然后你必须评估多项式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()