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

How to plot the best fit line in Python

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

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)

但他们都让我疯狂:

我做错了什么?

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),'-')