泉州信息工程学院
软件学院
课程设计报告书
课 程 名: Python
课程设计项目名称: 数据分析与可视化
团队成员: 吴清岚 吴梦云
一、项目简介
本项目采用Numpy、Pandas、pyecharts等数据库,基于flask框架实现网站,调用Line()方法进行近年薪资变化折线图的绘制,调用pie()方法绘制3个年份薪资前五的大学饼图,运用for语句实现循环体,调用map()方法进行中国省份薪资比较图,粗略的完成对大学生薪酬的部分数据分析与可视化,让人们对大学生薪酬有更加直观、深入的理解。在数据处理的过程中,使用图表、图形将数据的趋势差别相关性等关系展示出来,有助于人们对数据的理解与分析,特别对于一些高维度、高复杂度的数据,创建可视化图表对分析过程非常有益。此外,在展示数据结论时,清晰准确的图表或图形将是一种非常恰当的表达手段,“好的图表胜于千万的文字描述”。
1.1 项目博客地址
https://www.cnblogs.com/wql4024/
1.2 项目完成的功能与特色
功能:
导入Numpy、Pandas、pyecharts等数据库,调用Line()方法、调用pie()方法、调用map()方法、运用for语句实现循环体实现中国地图薪资分布、折线图、饼图以及获取Excel表中的数据
特色:
运用Line()方法、调用pie()方法、调用map()方法、for语句实现循环体,运用网址链接进行动态可视化
1.3 项目采用的技术栈
1、Python语言:Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
2、NumPy:NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,是矩阵计算与其它大多数框架的数据处理基础。
3、Flask:Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
4、Pandas:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
5、pyecharts: 是一个用于生成 Echarts 图表的类库。 Echarts是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
1.4 项目借鉴源代码的地址
https://github.com/David-Github_Project/Python-Curriculum-Resources
1.5 团队成员任务分配表
姓名 |
吴清岚 |
吴梦云 |
任务分配 |
大部分框架以及页面的完成 各个年份饼状图 |
部分框架以及页面的完成 折线图、中国地图以及测试 |
二、项目的需求分析
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。这一过程也是质量管理体系的支持过程。在本次项目中,我们通过对2013/2015/2017年中国各省大学生薪酬的比较分析,对这些各个大学学生毕业后出来工作的薪酬有整体的直观的了解;发现大学这些年薪酬的排名是否产生变化,变化的程度如何,是否一直进步等,可帮助人们作出判断,以便采取适当行动。
2.1项目功能架构图、主要功能流程图
2.1.1项目功能架构图:
2.1.2 主要功能流程图:
三、系统模块说明
3.1 系统模块列表:
测试
各个年份饼状图
折线图
中国地图
3.2 各模块详细描述(名称,功能,运行截图,关键源代码)
3.2.1、功能:可视化
运行截图:
运行代码:
@app.route("/index")
def index():
return render_template("index.html")
@app.route("/data", methods=['GET', 'POST'])
def getValues():
return render_template("sf_salary.html")
3.2.2、名称:2013年薪酬前五(饼图)
功能:实现2013年薪酬前五的大学
运行截图:
关键源代码:
3.2.2、
名称:2015年薪酬前五(饼图)
功能:实现2015年薪酬前五的大学
运行截图:
关键源代码:
3.2.3
名称:2017年薪酬前五(饼图)
功能:实现2017年薪酬前五的大学
运行截图:
关键源代码:
3.2.4
名称:近年薪酬平均值变化(折线图)
功能:实现2013-2017年大学生薪酬平均值变化
运行截图:
关键源代码:
3.2.5
名称:省份薪资比较(中国地图)
功能:实现中国各省大学生薪资比较图
运行截图:
关键源代码:
四、项目总结
经过几个星期的学习和奋斗,我们成功完成了对课程成绩表和大学学术排名表的部分数据分析与可视化,用Python语言编写代码,用Line()等方法绘制图形。对Python语言的应用更加成熟,对数据分析和可视化有了进一步理解,对库的使用也有了新的想法,学到了新的知识,将Python的理论与实践结合起来运用,收获颇多。在此过程中,我们也遇到了很多困难,代码一直出错,中文乱码,错误的原因找不到等一系列问题,但通过请教同学和依靠强大的百度搜索,终于成功解决问题,在数据分析与可视化的道路上又前进了一小步。虚心向别人请教会获得很多自己不知道的知识,团队合作也让我们认识到了团队的重要性,自己的职责。正所谓,“众人拾柴火焰高”,团结才能获得成功,合作才能共赢。
五、
5.1 特点
导入Numpy、Pandas、pyecharts等数据库,调用Line()方法、调用pie()方法、调用map()方法、运用for语句实现循环体实现中国地图薪资分布、折线图、饼图以及获取Excel表中的数据,调用网站实现可视化。
5.2 不足之处
技术含量低,容易被模仿;数据分析得不够具体,还有很多图没有绘制。阅历少、经验浅,考虑不够周全,缺乏应变能力,专业知识不够丰富。
名称:测试
功能:可视化
关键源代码:
运行代码:
@app.route("/index")
def index():
return render_template("index.html")
@app.route("/data", methods=['GET', 'POST'])
def getValues():
return render_template("sf_salary.html")