一、项目简介
1.1 项目博客地址
https://rpc.cnblogs.com/metaweblog/yyh28
1.2 项目完成的功能与特色
分析文件‘集美大学各省录取分数.xlsx’,完成以下功能:
1)集美大学2015-2018年间不同省份在本一批的平均分数,柱状图展示排名前10的省份, 2)分析福建省这3年各批次成绩情况,使用折线图展示结果,并预测2019年录取成绩
3)分析其他省份数据。用热力图,地图方式绘制所有省份数据情况。
1.3 项目采用的技术栈
Numpy:矩阵计算与其它大多数框架的数据处理基础;
Matplotlab:专业画图工具,话说这个单词还是真是在Matlab之间插入了plot这个词形成的;
Pandas:提供类似于R语言的DataFrame操作,非常方便;
百度地图API
热力图
1.3 项目借鉴源代码的地址
https://www.jianshu.com/p/c18dedc38b7b
1.4 团队成员任务分配表
二、项目的需求分析
对文件数据进行提取、分析
三、项目功能架构图、主要功能流程图
四、系统模块说明
4.1 系统模块列表
柱状图、折线图、热力图
4.2 各模块详细描述(名称,功能,运行截图,关键源代码)
4.2.1柱状图:集美大学2015-2018年间不同省份在本一批的平均分数,展示排名前10的省份。
#绘图 plt.figure() plt.bar(x=province_dict_keys,height=province_dict_values,alpha=0.8) for x,y in enumerate(province_dict_values): plt.text(x, y, ‘%s‘ % y, ha=‘center‘, va=‘bottom‘) #设置标题 plt.title("排名前10的省份") # 为两条坐标轴设置名称 plt.xlabel("省份") plt.ylabel("平均分") #图片的显示及存储 log = datetime.datetime.now().strftime(‘%Y-%m-%d‘) # plt.savefig(‘./logging/%s_all_a.jpg‘ % log) #图片的存储 # plt.close() #关闭matplotlib
4.2.2折线图:分析福建省这3年各批次成绩情况,使用折线图展示结果,并预测2019年录取成绩
#折线图 plt.figure() plt.plot(grade_year,grade,‘ro-‘, color=‘#4169E1‘, alpha=0.8, label=‘提前批航海类(理工)‘) plt.plot(grade_year,grade1,‘ro-‘, color=‘#FFFA12‘, alpha=0.8, label=‘师范类(面向全省)(理工)‘) plt.plot(grade_year,grade2,‘ro-‘, color=‘#78FF1D‘, alpha=0.8, label=‘师范类(面向厦门)(理工)‘) plt.plot(grade_year,grade3,‘ro-‘, color=‘#1CFFB7‘, alpha=0.8, label=‘农村专项计划(理工)‘) plt.plot(grade_year,grade4,‘ro-‘, color=‘#1BE9FF‘, alpha=0.8, label=‘本一批(理工)‘) plt.plot(grade_year,grade5,‘ro-‘, color=‘#1F98FF‘, alpha=0.8, label=‘本一批(面向厦门)(理工)‘) plt.plot(grade_year,grade6,‘ro-‘, color=‘#2237FF‘, alpha=0.8, label=‘闽台合作(理工)‘) plt.plot(grade_year,grade7,‘ro-‘, color=‘#BA6BFF‘, alpha=0.8, label=‘预科批(理工)‘) #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度) for y in [grade,grade1,grade2,grade3,grade4,grade5,grade6,grade7]: for x,yy in zip(grade_year,y): plt.text(x, yy+1,str(yy), ha=‘center‘, va=‘bottom‘, fontsize=7) plt.xlabel("年份") #X轴标签 plt.ylabel("分数线") #Y轴标签 plt.title("福建省这3年理工各批次成绩情况") #标题 # plt.savefig(‘./logging/%s_all_b.jpg‘ % log) #图片的存储 #显示图示 plt.legend() plt.show()
4.2.3热力图:分析其他省份数据。有精力同学可以研究热力图,地图方式绘制所有省份数据情况。
gr=batch(‘本一批‘,‘理工‘) gr=sorted(gr.items(),key=lambda x:x[1],reverse=True) file = open(r‘../point.json‘,‘w‘) #建立json数据文件 point_pr(gr,file) #获取经纬度 def getlnglat(address): url = ‘http://api.map.baidu.com/geocoding/v3/‘ output = ‘json‘ ak = ‘8atpMUyuexdbuYFU838ejPvSPnWYZoks‘ add = quote(address) #由于本文城市变量为中文,为防止乱码,先用quote进行编码 uri = url + ‘?‘ + ‘address=‘ + add + ‘&output=‘ + output + ‘&ak=‘ + ak req = urlopen(uri) res = req.read().decode() #将其他编码的字符串解码成unicode temp = json.loads(res) #对json数据进行解析 return temp def point_pr(gr,file): #每个省份的经纬度 print(gr) for line in gr: # line是个list,取得所有需要的值 b = line[0] #将第一列city读取出来并清除不需要字符 if b == ‘西藏‘ or b == ‘‘: continue c= line[1]#将第二列price读取出来并清除不需要字符 lng = getlnglat(b)[‘result‘][‘location‘][‘lng‘] #采用构造的函数来获取经度 lat = getlnglat(b)[‘result‘][‘location‘][‘lat‘] #获取纬度 str_temp = ‘{"lat":‘ + str(lat) + ‘,"lng":‘ + str(lng) + ‘,"count":‘ + str(c) +‘},‘ # print(str_temp) #也可以通过打印出来,把数据copy到百度热力地图api的相应位置上 file.write(str_temp) #写入文档 file.close()
五、项目总结
5.1 特点
对集美大学近几年的录取分数进行分析,并生成图表
5.2 不足之处
整体不够美观
码云地址:https://gitee.com/leaf28/university.git
原文地址:https://www.cnblogs.com/yyh28/p/12006076.html
时间: 2024-11-05 13:49:43