云计算

基于大数据的疫情数据分析及可视化系统

本文主要是介绍基于大数据的疫情数据分析及可视化系统,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 前言

Hi,大家好,这里是丹成学长,今天做一个 基于大数据的疫情可视化系统,这只是一个demo,尝试对疫情数据进行分析,并可视化系统

毕设帮助,开题指导,资料分享,疑问解答(见文末)

2 开发简介

学长从各省累计确诊人数随时间增长的态势以及空间分布随时间增长的态势入手,利用所收集的数据将各省累计确诊人数的时空分布用地图、折线图、堆叠条形图的形式呈现出来,从总体态势进行大致分析,然后再通过在不同粒度上展示各省疫情相关的详细信息,以发现其在不同时间段影响其态势变化的原因(境外输入、相关政策颁布等)。

同时还将疫情相关确诊、死亡等数据与各省的GDP、受教育程度、城镇化率、医疗卫生水平进行联系,以发现其与GDP、受教育程度、城镇化率之间是否存在关系。

其目标用户是政府等防控机关,通过本系统可以分析疫情时空分布模式、监控疫情发展态势、评估疫情防控措施。

3 数据集

数据源于爬虫与手动搜集:

weibo.json 新浪微博实时热搜前50的数据

ProvinceData.json 省市疫情详情

源于中国国家统计局(2018年中国统计年鉴)的数据

2020-01-10至2020-02-06数据来自国家,各省,武汉市卫健委疫情公告,2020-02-07后数据从今日头条接口采集 境外输入数据(手动从网上新闻中搜集)

4 实现技术

4.1 系统架构

4.2 开发环境

  • 1、Node.js(前端Vue和后端node都依赖该环境) 2、开发工具:Git,vscode,Hbuilder,pycharm 3、开发语言:Python,HTML+CSS+JavaScript 4、重点依赖库:echarts,bootstrap,jQuery

4.3 疫情地图

4.3.1 填充图(Choropleth maps)

  • 填充图适合表达区域之间的差异。 填充图能够很好的展现形全局差异,细微的差异很难表达。 但填充图的展现效果受区域面积影响比较大,容易形成误导

4.3.2 气泡图

气泡图使用不同大小的圆圈表示区域上的数值。它在每个地理坐标上显示一个气泡,或在每个区域显示一个气泡。

下图我们以气泡图形式进行疫情地图可视化

通过气泡图我们可以很明确的看出世界上疫情比较严重的国家,而且不会受到区域面积的干扰,欧洲一些面积比较小的国家我们也能够清晰的识别出来。气泡图表达方式缺点在于气泡过多,过大将会产生遮盖现在。 气泡是一种比较好的展现形式,如果使用方式不当也会产生干扰,比如数据映射方法选择,颜色色带选择都会影响数据表达的结果。

关键代码:

4.4 全国疫情实时追踪

全国疫情实时追踪页面,支持折线图、条形图、扇形图、地图热力图展示,图表由Echarts实现,支持左上角侧边栏跳转。

4.6 其他页面

5 关键代码

两个数据表

CREATE TABLE `history` (
  `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 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `details` (
  `id` int(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 DEFAULT CHARSET=utf8mb4;

最后 - 技术解答 - 毕设帮助

这篇关于基于大数据的疫情数据分析及可视化系统的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!