由于最近参加建模比赛需要用到 python 做一些辅助,因此在这里将数学建模中常用的 pyhton 辅助代码记录一下!
python读取 excel 数据
#打开一个excel表格对象
import xlrd
workBook = xlrd.open_workbook(path)
#两种方式获取 excel 中的 sheet
sheet1 = workBook.sheet_by_index(0)
sheet1= workBook.sheet_by_name('Sheet1')
#获取sheet名称、行数、列数等。
name = sheet1_content1.name
n_rows = sheet1_content1.nrows
n_cols = sheet1_content1.ncols
#获取一整行或者一整列的数据,返回为list
row_data = sheet1.row_values(i); # 获取第 i 行内容
col_data = sheet1.col_values(j); # 获取第 j 列内容
#获取某个单元格数据
data = sheet1.cell_value(i, j)#获取第 i 行 j 列的数据
python 向 excel 中写入数据
import openpyxl as op
#打开文件
workbook = op.load_workbook(path)
#选取sheet1
sheet = workbook["Sheet1"]
#向Sheet1中某个单元格写入数据
sheet.cell( row, col, num)#向第 row 行 col 列写入数据数据 num;
# 将 list 的数据写入到某行或者列
list_data = [1,2,3,4,5,6,7,8,9]
for i in range(0,len(list_data)):
sheet.cell(1, i+1, list_data[i])#写入第一行
#保存结果
workbook.save(path)
python 画图
#导入包
import matplotlib.pyplot as plt
#创建绘图对象
plt.figure(figsize=(20,16))
plt.title("title") #添加标题
#x轴
x = []
for j in range(0,12):
x.append(j)
#函数,可以是连续函数也可以是散点图
y2 = [1,5,8,9,6,3,5,4,1,2,8,5]
y1 = []
for j in range(0,12):
y1.append(j)
plt.plot(x,y1,"b-",linewidth=1, marker = '*',label = 'y1')
plt.plot(x,y2,"r-",linewidth=1, marker = '+',label = 'y2') #在当前绘图对象绘图(X轴,Y轴,蓝色实线,线宽度,每个点的标识,线条的标签)
plt.legend(loc = 0)
plt.xlabel("x") #X轴标签
plt.ylabel("y") #Y轴标签
plt.show()
python 画子图(画多个图到一张纸)
import matplotlib.pyplot as plt
#创建绘图对象
plt.figure(figsize=(20,16))
plt.title("title") #添加标题
#x轴
x = []
for j in range(0,12):
x.append(j)
#函数,可以是连续函数也可以是散点图
y2 = [1,5,8,9,6,3,5,4,1,2,8,5]
y1 = []
for j in range(0,12):
y1.append(j)
splt.subplot(121)
plt.plot(x,y2,"b-",linewidth=1, marker = '*',label = 'XGBoost')
plt.subplot(122)
plt.plot(x,y1,"r-",linewidth=1, marker = '+',label = 'XGBoost') #在当前绘图对象绘图(X轴,Y轴,蓝色实线,线宽度,每个点的标识,线条的标签)
plt.legend(loc = 0)
plt.xlabel("x") #X轴标签
plt.ylabel("y") #Y轴标签
plt.show()
subpolt(121)表示将图分成1行2列并将下一个图放置于第一个位置。如果为222则表示将图纸分割为 2 行 2 列将图放置于第二个位置。