Python 使用polyval和polyfit在半对数图上绘制线性回归

Python 使用polyval和polyfit在半对数图上绘制线性回归,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在使用matplotlib+numpy来使用polyfit和polyval函数生成线性回归 lateReg = np.polyfit(x=xm,y=mcherryp,deg=1) ax1.plot(xm, np.polyval(lateReg,xm), 'r-') earlyReg = np.polyfit(xv,venusp,deg=1) ax1.plot(xv, np.polyval(earlyReg,xv), 'g-') 然而,因为我的x轴是对数轴,所以直线看起来不是很线性。他说我可

我正在使用matplotlib+numpy来使用polyfit和polyval函数生成线性回归

lateReg = np.polyfit(x=xm,y=mcherryp,deg=1)
ax1.plot(xm, np.polyval(lateReg,xm), 'r-')
earlyReg = np.polyfit(xv,venusp,deg=1)
ax1.plot(xv, np.polyval(earlyReg,xv), 'g-')
然而,因为我的x轴是对数轴,所以直线看起来不是很线性。他说我可以 只要使用
y=m*log(x)+b,我的行就会再次线性化,但我不确定如何使用我的代码(我想使用这些函数,而不是手动操作)。有什么想法吗?它是否简单到:

ax1.plot(log(xm), np.polyval(lateReg,xm), 'r-')

谢谢

假设您的数据看起来像半对数图上的一条直线

p = np.polyfit(np.log(xm), mcherryp, 1)
ax1.semilogx(xm, p[0] * np.log(xm) + p[1], 'r-')

在这种情况下,以及loglog的情况下,我通常认为
polyval
是没有用的。

就像一个符咒。非常感谢:)