分析文件‘集美大学各省录取分数.xlsx’,完成以下功能:
1)集美大学-间不同省份在本一批的平均分数,柱状图展示排名前10的省份,
2)分析福建省这3年各批次成绩情况,使用折线图展示结果,并预测录取成绩
3)分析其他省份数据。用热力图,地图方式绘制所有省份数据情况。
4)根据输入省份动态显示省份分数线的分析图
导入相应的库
importxlrdimportmatplotlib.pyplot as pltimportnumpy as npfrom urllib.request importurlopen, quoteimportrequests,csvimport pandas as pd #导入这些库后边都要用到
from pyecharts importLine,Bar,Pie,Radarimportjsonfrom werkzeug.utils importredirectfrom flask import Flask, jsonify, render_template, request, url_for
python读取excel文件数据
importxlrd
excel_path="..\\grade.xlsx"
#打开文件,获取excel文件的workbook(工作簿)对象
excel=xlrd.open_workbook(excel_path,encoding_override="utf-8")#返回所有Sheet对象的list
all_sheet=excel.sheets()#循环遍历每个sheet对象存储表中所有数据
grade_list=[]#将文件中数据存进grade_list
for sheet inall_sheet:for each_row in range(sheet.nrows):#循环打印每一行
grade_list.append(sheet.row_values(each_row))
python移除列表空数据
defremoveNull(alist):for i inalist:if i == '':
alist.remove(i)return alist
python图表中文乱码
#设置中文乱码
from pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei']
python列表内所有数据相加求平均数
#列表数据相加求平均
defsum_list(items):
sum_numbers=0
count=0for x initems:
sum_numbers+=x
count+= 1
return int(sum_numbers / count)
python将字典前十key、value存入列表
#字典的前十key values
deftopTenKey(dict_order):
count=0
order=[]for key indict_order.keys():
count+=1
if count>10:break
else:
order.append(key)returnorderdeftopTenValue(dict_order):
count=0
order=[]for key indict_order.values():
count+=1
if count>10:break
else:
order.append(key)return order
python 移除列表第一个元素 和最后一个元素
grade_list.pop(0)
grade_list.pop()
flask框架使用,并从前端页面获取数据,后台处理返回页面
from flask importFlask, jsonify, render_template, request, url_for
app= Flask(__name__)defmain():
@app.route("/index")defindex():return render_template("Base.html")
@app.route('/test',methods=['POST'])deftestGet():
year= request.form.get('year')
tenYear(province_dict,int(year))print("执行get")return render_template("Base.html")if __name__ == '__main__':
main()
app.run(host='127.0.0.1', port=8080, debug=True)
集美大学录取分数
functionchange(e) {if(e==1){
document.getElementById('iframe-b').contentWindow.location.reload();
}
}