如何在Python中绘制最佳拟合线

时间:2015-10-07 00:46:23

标签: python plot curve-fitting

我真的很困惑:我.... 我有大量数据,我试图用最合适的线条绘制它。 我尝试了两种不同的方式:

pl.plot(med[::skip],var[::skip],'k.')
p, q = np.polyfit(var[::skip],med[::skip], 1)
pl.plot(med,p*med+q,'-')

pl.plot(med[::skip],var[::skip],'k.')
p = np.polyfit(var[::skip],med[::skip], 1)
fit = np.polyval(p, var[::skip])
pl.plot(var[::skip],fit)

但他们都给了我一些疯狂的东西:

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

numpy.polyfit()需要x,然后y作为参数,因此您需要在调用时交换varmed

请注意,因为你有一个对数日志图,所以不会给你一条直线。相反,您应该适合两个变量的日志:

pl.plot(med[::skip],var[::skip],'k.')
p, q = np.polyfit(np.log10(med[::skip]),np.log10(var[::skip]), 1)
pl.plot(med[::skip],10**(p*np.log10(med[::skip])+q),'-')