我试图用scipy曲线拟合对我的数据进行多元对数回归,结果期望得到一条直线,但得到一条曲线。 以下是我使用的代码:
Quercetin=[23,195,6,262,272,158,79,65,136,198]
Naringenin=[11,4,8,6,6,7,6,9,7,9]
Rutin=[178,165,93,239,202,3325,4427,7607,3499,1762]
TEAC=[23,189,37,265,290,267,362,388,364,321]
import matplotlib.pyplot as plt
import scipy
from scipy.optimize import curve_fit
import numpy as np
def func(x, a, b, c, d,e):
m=np.log(a*x[0]+b*x[1]+c*x[2])
return d*(m)+e
x=scipy.array([Quercetin, Naringenin,Rutin])
y=scipy.array(TEAC)
popt, pcov = curve_fit(func, x ,y)
print (popt)
plt.plot(func(x,*popt),y,'ro-')
plt.show()
当我想得到这样的东西时:
谁能告诉我我做错了什么吗? 如果这很重要的话,我将在Windows10上使用Anaconda的Python3.5。你知道吗
(我假设问题真的是关于策划的)。 您要求
matplotlib
绘制由直线(-
)连接的红点('ro'
)。Matplotlib按照给定的顺序约束和连接它们。你知道吗如果要绘制线,只需单独绘制:
相关问题 更多 >
编程相关推荐