news 2026/6/9 19:58:25

毕业设计 大数据疫情可视化分析系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
毕业设计 大数据疫情可视化分析系统

文章目录

  • 0 前言
  • 1 课题介绍
  • 2 运行效果
  • 3 关键代码
    • 3.1 数据爬虫
    • 3.2 可视化部分

0 前言

🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。并且很难找到完整的毕设参考学习资料。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目提供大家参考学习,今天要分享的是

🚩基于python/大数据的疫情分析与可视化系统

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿选题指导, 项目分享:见文末



1 课题介绍

全球Covid-19大危机影响我们的生活,我们的出行、交流、教育、经济等都发生了巨大的变化,全球疫情大数据可视化分析与展示,可用于社会各界接入疫情数据,感知疫情相关情况的实时交互式态势,是重要的疫情分析、防控决策依据。

我国爆发的疫情,对我们的日常生活带来了极大的影响,疫情严重期间,大家都谈“疫”色变,大家对于了解疫情的情况具有巨大的需求;并且,目前来看我国仍然存在疫情二次爆发的可能,大家对于疫情的情况跟踪也急于了解。

基于这个情况,学长对疫情的数据进行了爬取和可视化的展示和疫情的追踪, 也就是学长设计的作品。


2 运行效果


3 关键代码

PS:篇幅有限,学长仅展示部分关键代码

3.1 数据爬虫

疫情数据爬虫,就是给网站发起请求,并从响应中提取需要的数据

1、发起请求,获取响应

  • 通过http库,对目标站点进行请求。等同于自己打开浏览器输入网址
  • 常用库:urllib、requests
  • 服务器会返回请求的内容一般为:HTML、文档、JSON字符串等

2、解析内容

  • 寻找自己需要的信息,也就是利用正则表达式或者其他库提取目标信息
  • 常用库:re、beautifulsoup4

3、保存数据

  • 将解析到的数据持久化到数据库中
importpymysqlimporttimeimportjsonimporttraceback#追踪异常importrequestsdefget_tencent_data():""" :return: 返回历史数据和当日详细数据 """url=''url_his=''#最基本的反爬虫headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',}r=requests.get(url,headers)#使用requests请求res=json.loads(r.text)# json字符串转字典data_all=json.loads(res['data'])#再加上history的配套东西r_his=requests.get(url_his,headers)res_his=json.loads(r_his.text)data_his=json.loads(res_his['data'])history={}# 历史数据foriindata_his["chinaDayList"]:ds="2020."+i["date"]tup=time.strptime(ds,"%Y.%m.%d")ds=time.strftime("%Y-%m-%d",tup)# 改变时间格式,不然插入数据库会报错,数据库是datetime类型confirm=i["confirm"]suspect=i["suspect"]heal=i["heal"]dead=i["dead"]history[ds]={"confirm":confirm,"suspect":suspect,"heal":heal,"dead":dead}foriindata_his["chinaDayAddList"]:ds="2020."+i["date"]tup=time.strptime(ds,"%Y.%m.%d")ds=time.strftime("%Y-%m-%d",tup)confirm=i["confirm"]suspect=i["suspect"]heal=i["heal"]dead=i["dead"]history[ds].update({"confirm_add":confirm,"suspect_add":suspect,"heal_add":heal,"dead_add":dead})details=[]# 当日详细数据update_time=data_all["lastUpdateTime"]data_country=data_all["areaTree"]# list 25个国家data_province=data_country[0]["children"]# 中国各省forpro_infosindata_province:province=pro_infos["name"]# 省名forcity_infosinpro_infos["children"]:city=city_infos["name"]confirm=city_infos["total"]["confirm"]confirm_add=city_infos["today"]["confirm"]heal=city_infos["total"]["heal"]dead=city_infos["total"]["dead"]details.append([update_time,province,city,confirm,confirm_add,heal,dead])returnhistory,details

数据表结构

history表存储每日的总数据

CREATE TABLEhistory(ds datetime NOT NULL COMMENT ‘日期’, confirm int(11)DEFAULT NULL COMMENT ‘累计确诊’, confirm_add int(11)DEFAULT NULL COMMENT ‘当日新增确诊’, suspect int(11)DEFAULT NULL COMMENT ‘剩余疑似’, suspect_add int(11)DEFAULT NULL COMMENT ‘当日新增疑似’, heal int(11)DEFAULT NULL COMMENT ‘累计治愈’, heal_add int(11)DEFAULT NULL COMMENT ‘当日新增治愈’, dead int(11)DEFAULT NULL COMMENT ‘累计死亡’, dead_add int(11)DEFAULT NULL COMMENT ‘当日新增死亡’, PRIMARY KEY(ds)USING BTREE)ENGINE=InnoDB DEFAULTCHARSET=utf8mb4;

details表存储每日的详细数据

CREATE TABLE details(idint(11)NOT NULL AUTO_INCREMENT, update_time datetime DEFAULT NULL COMMENT ‘数据最后更新时间’, province varchar(50)DEFAULT NULL COMMENT ‘省’, city varchar(50)DEFAULT NULL COMMENT ‘市’, confirm int(11)DEFAULT NULL COMMENT ‘累计确诊’, confirm_add int(11)DEFAULT NULL COMMENT ‘新增确诊’, heal int(11)DEFAULT NULL COMMENT ‘累计治愈’, dead int(11)DEFAULT NULL COMMENT ‘累计死亡’, PRIMARY KEY(id))ENGINE=InnoDB DEFAULTCHARSET=utf8mb4;

整体的数据库图表:

3.2 可视化部分

echarts绘制图表

defget_c1_data():""" :return: 返回大屏div id=c1 的数据 """# 因为会更新多次数据,取时间戳最新的那组数据sql="select sum(confirm),"\"(select suspect from history order by ds desc limit 1),"\"sum(heal),"\"sum(dead) "\"from details "\"where update_time=(select update_time from details order by update_time desc limit 1) "res=query(sql)res_list=[str(i)foriinres[0]]res_tuple=tuple(res_list)returnres_tuple

中国疫情地图实现

defget_c2_data():""" :return: 返回各省数据 """# 因为会更新多次数据,取时间戳最新的那组数据sql="select province,sum(confirm) from details "\"where update_time=(select update_time from details "\"order by update_time desc limit 1) "\"group by province"res=query(sql)returnres

全国累计趋势

defget_l1_data():""" :return:返回每天历史累计数据 """sql="select ds,confirm,suspect,heal,dead from history"res=query(sql)returnresdefget_l2_data():""" :return:返回每天新增确诊和疑似数据 """sql="select ds,confirm_add,suspect_add from history"res=query(sql)returnresdefget_r1_data():""" :return: 返回非湖北地区城市确诊人数前5名 """sql='SELECT city,confirm FROM '\'(select city,confirm from details '\'where update_time=(select update_time from details order by update_time desc limit 1) '\'and province not in ("湖北","北京","上海","天津","重庆") '\'union all '\'select province as city,sum(confirm) as confirm from details '\'where update_time=(select update_time from details order by update_time desc limit 1) '\'and province in ("北京","上海","天津","重庆") group by province) as a '\'ORDER BY confirm DESC LIMIT 5'res=query(sql)returnres

疫情热搜

defget_r2_data():""" :return: 返回最近的20条热搜 """sql='select content from hotsearch order by id desc limit 20'res=query(sql)# 格式 (('民警抗疫一线奋战16天牺牲1037364',), ('四川再派两批医疗队1537382',)returnres

🧿选题指导, 项目分享:见文末


🧿 项目分享:大家可自取用于参考学习,获取方式见文末!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 9:33:24

30、SharePoint 升级指南与参考

SharePoint 升级指南与参考 1. 升级前检查升级问题 在完成试用升级后,需在浏览器中打开升级后的网站,验证页面是否正确显示。常见问题及解决方法如下: | 问题 | 解决方法 | | — | — | | 管理员浏览站点时收到“访问被拒绝”错误 | 通过策略设置添加管理员以授予其完全…

作者头像 李华
网站建设 2026/6/10 10:37:04

GPT-SoVITS能否还原方言俚语和地方表达?

GPT-SoVITS能否还原方言俚语和地方表达? 在数字语音日益“标准化”的今天,我们听到的AI助手几乎都说着一口字正腔圆的普通话。这种统一性虽提升了理解效率,却也在无形中抹去了语言最动人的部分——那些藏在街头巷尾、祖辈口中的方言俚语与地方…

作者头像 李华
网站建设 2026/6/10 10:46:19

11、深入解析 Windows 应用中的 Play To 与 WNS 功能

深入解析 Windows 应用中的 Play To 与 WNS 功能 1. Play To 功能实现 在 Windows 应用开发中,Play To 功能允许应用在本地网络中进行多媒体文件的流式传输。下面将详细介绍如何实现 Play To 功能,包括源应用和接收应用的开发。 1.1 源应用的 Play To 实现 在源应用中,实…

作者头像 李华
网站建设 2026/6/10 7:51:17

26、.NET 应用错误处理设计全解析

.NET 应用错误处理设计全解析 1. 错误处理基础原则 在方法设计中,当出现问题时,建议抛出异常而非返回错误码或其他消息。这是因为错误码或空值不会在系统中持续传播,容易被忽略。不过,对于一些常见错误情况,可以返回空值,例如 GetCustomerById 方法在未找到客户时返回…

作者头像 李华
网站建设 2026/6/10 7:52:16

28、Windows Store 应用的测试与诊断策略

Windows Store 应用的测试与诊断策略 在开发 Windows Store 应用时,测试和诊断是确保应用质量和性能的关键环节。下面将详细介绍 Windows Store 应用的测试策略和诊断监控策略。 1. 测试策略设计与实施 在开发 Windows Store 应用时,可考虑采用以下两种测试计划: - 功能…

作者头像 李华
网站建设 2026/6/10 1:04:02

一个投顾服务500+客户?人机协同,是金融AI的终局

2025年,中国财富管理市场正经历一场结构性变革。 据艾瑞咨询最新报告,高净值人群数量已突破300万,但持牌投顾人数却不足20万——供需失衡催生了“投顾荒”。与此同时,生成式AI技术在金融场景快速落地,大模型不再只是聊…

作者头像 李华