机器视觉程序员

数据可视化之matplotlib误差线(二)

2018-06-29  本文已影响10人  truezero

梦里有时终须有,梦里无时莫强求

今天误差限第二章,errobar显示的只是离散点的误差,虽然在我们看来图像是连续但是实际只是点,所以为了更好拟合误差趋势,就有今天连续误差,代码如下

import numpyas np

from sklearn.gaussian_processimport GaussianProcess

import  matplotlibas mtp

import  matplotlib.pyplotas plt

fig=plt.figure()

#x=np.linspace(0,10,50)

model =lambda x:x*np.sin(x)

print(type(model))

y=1

model1=lambda x,y: x*np.sin(x)+y

print(type(model1))

print(model1)

xdata=np.array([1,3,5,6,8])

ydata1=np.array([2,3,9,20,30])

ydata=model(xdata)

y=model1(xdata,ydata1)

gp=GaussianProcess(corr='cubic',theta0=1e-2,thetaL=1e-4,thetaU=1E-1,random_start=100)

gp.fit(xdata[:,np.newaxis],ydata)

xfit=np.linspace(0,10,1000)

yfit,MSE=gp.predict(xfit[:,np.newaxis],eval_MSE=True)

dyfit=2*np.sqrt(MSE)

重点在这里,上面只是就算求误差

plt.figure()

plt.plot(xdata,ydata,'r')

plt.plot(xfit,yfit,color='yellow')

plt.fill_between(xfit,yfit-dyfit,yfit+dyfit)

print(ydata)

print(type(dyfit))

plt.show()

效果图如下

连续误差线

效果如图,用的是between函数,实际也就是填充中间区域,代码有疑问回复,欢迎大家讨论

上一篇 下一篇

猜你喜欢

热点阅读