在使用python进行实验的同时,需要先安装我们在程序设计中所需要的包,可从https://pypi.org/上进行下载,下载版本注意与python版本一致。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import linear_model
import xlrd
# 打开文件
workbook = xlrd.open_workbook(r'C:\Users\uesrname\Desktop\xlsxname.xlsx')
#可以根据sheet索引或者名称获取sheet内容,以下两种方法都行
#sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
sheet1 = workbook.sheet_by_name('Sheet1')
#获取该sheet1总行数和列数
#print(sheet1.nrows,sheet1.ncols)
cols = list(sheet1.col_values(1)) # 获取第二列内容
cols1 = cols[1:] #去除第一行内容,因为我不需要第一行数据,实际情况可用printf函数打印出cols来进行取舍
len1 = len(cols1) #得到该列处理数据的个数
#调用线性回归函数
reg=linear_model.LinearRegrsession(fit_intercept=True,normalize=False)
#创建一个二维列表
L1 = []
for x in range(0,117,1):
L1.append([])
y=x+1
L1[x].append(y)
#得到点的横坐标和纵坐标,注意:数据个数需保持一致
x = L1 #必须要是二维列表与y对应
y = cols1
#拟合
reg.fit(x,y)
k=reg.coef_#得到斜率
b=reg.intercept_#获取截距
print(k,b) #打印出斜率和截距
#得到需作拟合线的x0,y0,其中np.arange的参数为(起始点,终止,步长)
x0=np.arange(0,117,1)
y0=k*x0+b
plt.scatter(x0,y) #描点函数
plt.plot(x0,y0) #划线函数
plt.show() #显示图像
经验证能够实现从excle中导出数据,并对其进行线性回归分析,如下所示:
可得其回归方程为:y=32.41002413x+3171.3812260536392