




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与电气工程学院数据可视化报告( 2016/2017学年第二学期)专业班级:计算机1403学生姓名:叶何斌学号:140210316设计成绩:2017 年 06 月 1 日精品资料目录1项目摘要 .32项目结构 .32.1数据库设计及实现.32.2 flask .42.3前端.53项目成果预览 .54项目中所遇到的问题 .74.1网页中文乱码 .74.2图表在网页中不显示 .75总结.71 项目摘要本项目选取的数据集为一天的用电量分布,数据集是基于实际数据虚构的, 因为数据量太庞大。 虽然数据是虚构的但是也具有一定的代表性。数据中包括了一天各个时段的用电量情况。 本可视化的主要目的是能够清晰地展示某一个地区每天用电量的变化,以便发电厂预测用电量,更好的调动发电机组。项目中主要使用的技术包括:mysql 、flask 和 echarts 。echarts 是一个商业级的图表库,项目中直接引用了echarts 的 js 文件。flask 是一个使用python 编写的轻量级web应用框架,这个直接安装到python 环境里了。项目的大概思路就是首先运行创建数据库的python 代码,创建好数据库之后。再运行读取数据库的 python 代码 readdatabase.py ,这个程序会去找html 网页,之后打开浏览器就能看到图表了。2 项目结构2.1 数据库设计及实现2.1.1数据库表表1-1 epower表属性名称数据类型可否为空备注timepowersvarchar(20)varchar(20)否否时间用电量2.1.2设计及实现数据库就有两个字段,一个时间,一个用电量。数据库比较简单,都是最基本最基本的操作和实现。数据库插入数据是一个python 文件 create_data.py 。首先配置好数据库连接的一些基本信息,然后在开始创建表。 在创建表之前程序检查一下表是否存在,如果存在就将表删除,重新创建。其中创建表的代码为:cur.execute(createtableepower(timevarchar(20),powersvarchar(20)数据是保存在一个数组里,实际上就是将数组中的数据插入到数据库中去。插入数据的代码为:cur.executemany(insert into epower values (%s,%s), datas)最后关闭连接,释放资源。2.2 flaskflask 就是一个胶水层,将数据库和网页之间连接起来,这也是 python 被称为“胶水语言”的一个体现。具体到项目,我们首先导入flask类,然后我们使用route()装饰器告诉flask什么样的 url能触发我们的函数。用python 生成 html十分无趣,而且相当繁琐,因为必须手动对html做转义来保证应 用 的 安 全 。 为 此 , flask配 备 了jinja2模 板 引 擎 。 所 以 我 使 用render_template()方法来渲染模板。代码如下:app.route(/, methods=get) def index():return render_template(index.html)flask会在 templates文件夹里寻找模板,也就是index.html 。然后主页异步加载数据, flask 识别 url 中的 powers 就执行查询数据库的代码,并将结果返回给主页面。 其中的 get 请求方法是指: 浏览器告知服务器: 只获取页面上的信息并发给我。代码如下:app.route(/powers, methods=get) def powers():if request.method = get:conn=pymysql.connect(host=localhost,user=root,passwd=root,db=stu2,por t=3306,charset=utf8)cur=conn.cursor() cur.execute(select * from epower) res=cur.fetchall()cur.close() conn.close()return jsonify(time = x0 for x in res,powers = x1 for x in res,)2.3 前端前端的东西主要是包括两个部分:一个是数据图表的生成,还有一个就 是数据的异步加载。 图表的生成就是两组数据, 一个 x 轴一个 y 轴。都在对应的数组里, echarts负责将这些数组里面的数据以图表的方式体现出来。 前端稍微复杂点的就是异步加载数据了,其实也比较简单,就是刚刚说的readdatabase.py文件里面会去读取数据然后给到前台页面,前台页面接收 到数据。再将数据给到对应的数组里面,图表就生成出来了。异步加载代码如下:$.get(/powers,function (data) mychart.hideloading(); mychart.setoption(xaxis: data: data.time););,series: name: 用电量, /根据名字对应到相应的系列data: data.powers.map(parsefloat) 3 项目成果预览图 3-1用电量分布折线图图 3-2用电量分布柱状图4 项目中所遇到的问题4.1 网页中文乱码问题:在项目运行的时候, 网页出现了中文的乱码。 然后各种改网页的编码格式,在 html 的头部指定编码为gbk 或 gb2312 都不行。原因及解决办法:因为notepad+ 打开 html 网页文件时使用的ansic编码,这就导致了整个中文的编码都变成了ansic ,结果就造成了浏览器无法解析。然后就用 notepad+ 将整个 html 文件转换成 utf-8 的编码格式, 再运行项目,中文乱码的问题就解决了。4.2 图表在网页中不显示问题:网页正常打开,但是图表就是不显示。解决办法:使用另一个浏览器打开,图表正常显示。还有其他很多的小问题就不一一赘述了,例如:数据库写不进数据因为表名写错等等。5 总结通过本次项目,从基本目标的定型到实践开发的过程,收获还是巨大的。首先感谢同学的耐心指导、 解答在开发过程中遇到的困惑与问题,并且在完成之后还给我提供了一些合理的新功能的思路,使得程序一步一步得到了完善。其次是对一门新语言和新事物的认知和掌握。在没有任何实践经验的情况下,通过本次项目,我花了较短的时间学习了python 。当然这和 python 的语言特点也是脱不了关系的。 除了一门新语言的简单掌握以及计算机网络编程的简单实现,还锻炼了个人的学习以及动手能力。以及通过老师模板和网络的帮助,达成了“提出问题-分析问题 -解决问题”的解决途径。过去一直以为数据可视化需要复杂的算法或者对计算机底层原理有很高要求的东西,通过本次数据可视化的项目, 让我对数据可是化有了一个全新的认识。门槛可高可低, 深度可深可浅。 比如除了我这样简单实现以外,还可以去分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030功能性食用油行业深度调研及健康属性与市场教育报告
- 2025-2030功率半导体器件封装测试技术发展趋势报告
- 2025年新能源汽车电池热管理系统成本控制与性能提升报告
- 2025年安全生产知识竞赛必考题库及答案
- 2025-2030年新能源行业投资并购风险管理与应对策略研究报告
- 2025年康复医学康复方案设计模拟试题答案及解析
- 2025年交管12123学法减分考试题大全及参考答案
- 2025年保险行业数字化理赔服务法律法规研究报告
- 智慧城市地热能供暖技术创新2025年市场分析与战略建议报告
- 2025年江苏省泰州市国家公务员行政职业能力测验模拟题(附答案)
- 人教版(新教材)高中生物选择性必修1课件3:4 3 免疫失调
- 《SLT 582-2025水工金属结构制造安装质量检验检测规程》知识培训
- “燕园元培杯”2023-2024学年全国中学生地球科学奥林匹克竞赛决赛试题详解
- 中国血脂管理指南(基层版+2024年)解读
- 分子诊断技术在感染性疾病中的应用-深度研究
- 《智能AI分析深度解读报告》课件
- 气道异物护理教学
- 2024年版机电产品国际招标标准招标文件
- 企业合规经营规范手册
- 企业员工心理健康与欺凌防范政策
- 四川省兴文县建设煤矿2021年矿山储量年报
评论
0/150
提交评论