2014-02-20 65 views
1

我使用matplotlib + numpy的產生線性迴歸使用polyfit和polyval功能使用polyval和polyfit

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軸是log繪製在半對數圖表線性迴歸的線條看起來不是線性的。 This site說我可以 只需使用y=m*log(x)+b和我的線將再次線性,但我不確定如何使用我有的代碼(和我想使用這些功能,而不是手動)。有任何想法嗎?是否如此簡單:

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

謝謝!

回答

3

假設你的數據看起來像在半對數圖一條直線,你想

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

在這種情況下,與雙對數的情況下,我通常會認爲polyval是沒有用的。

+0

工程就像一個魅力。萬分感謝 :) – Zak