Python 绘制线性回归散点图和置信区间线

使用python绘制线性回归散点图和回归线以及置信区间线,使用的数据直接随机写两个一维数组,作为x、y值。

import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
import numpy as np

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

slope, intercept, r, p, std_err = stats.linregress(x, y)
print(slope, intercept, r, p, std_err)
def myfunc(x):
  return slope * x + intercept
mymodel = list(map(myfunc, x))

#y=slope * x + intercept
regression_equation="y="+"{:.2f}".format(slope)+"*x+"+"{:.2f}".format(intercept)+"\nR:"+"{:.2f}".format(r)+"\nP:"+"{:.4f}".format(p)

y_pred= mymodel
print(y_pred)
std=np.std(y_pred)
# y_pred, std = model.predict(x, return_std=True)

std_z = 1.96 # from z-table for 95%
confidence_interval = std * std_z

plt.scatter(x, y)
plt.plot(x, mymodel,label=regression_equation)
plt.plot(x, y_pred - confidence_interval)
plt.plot(x, y_pred + confidence_interval)

plt.fill_between(x, y_pred - confidence_interval, y_pred + confidence_interval)
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc="best") # 指定legend的位置,读者可以自己help它的用法
plt.title('polyfitting')
plt.show()

计算效果如下:

修改一下代码,显示置信区间图例标签,效果如下:

plt.plot(x, y_pred - confidence_interval,label="95%-")
plt.plot(x, y_pred + confidence_interval,label="95%+")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空中旋转篮球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值