基于Flask框架的疫情数据可视化分析

2021-12-28 23:23李相霏韩珂
计算机时代 2021年12期
关键词:数据可视化新冠疫情

李相霏 韩珂

摘  要: 在新冠肺炎疫情背景下,通过数据爬虫技术获取开源的疫情数据,经数据处理后形成数据集,利用可视化技术进行数据可视化与数据分析。介绍了数据爬取与处理方法,利用Python语言的Flask框架等可视化技术完成疫情数据可视化,从多角度、多方面展示与分析疫情数据。帮助民众充分了解全国各地的疫情情况、疫情发展趋势以及疫苗接种情况。

关键词: 数据爬虫; 新冠疫情; 数据可视化; Flask框架

中图分类号:TP311.5          文献标识码:A     文章编号:1006-8228(2021)12-60-04

Abstract: In the context of COVID-19 epidemic, open source epidemic data were obtained through data crawler technology, and data sets were formed after data processing, and visualization technology was used for data visualization and data analysis. Data crawling and processing methods were introduced, and visualization technologies such as Python Flask framework were used to complete the visualization of epidemic data, and the epidemic data were displayed and analyzed from multiple perspectives and aspects, which helps people fully understand the situation of the epidemic, the trend of the epidemic and the status of vaccination throughout the country.

Key words: data crawler; COVID-19; data visualization; Flask framework

0 引言

在2020年初爆发的新型冠状病毒,是一种传染力极强的病毒。患者在感染了新型冠状病毒后,即使在潜伏期也很容易传染其他人,该病毒会导致人呼吸困难,严重的可能会导致死亡。时至今日,疫情仍未完全褪去,新冠疫情仍是全世界人民最关注的话题之一,特别是有些国家仍处于爆发期。因此,疫情的实时数据以及相关新闻报导受到了极大的关注。

本系统利用数据爬虫技术,完成疫情数据以及疫苗接种数据的爬取,经数据处理后形成数据集。利用数据可视化技术,对数据集进行可视化,实现疫情情况与疫苗接种情况的实时更新。帮助民众充分了解最新疫情数据、近期疫情发展趋势以及疫苗接种情况。

Flask框架是一个轻量级的、便捷的、Python所提供的Web框架,它更加的灵活、轻便、安全且容易上手,是目前主流的服务器框架,非常适合全队的分工协作式开发,对一个小型团队而言,大大提升了开发的效率[1]。利用Flask框架,实现前后端的数据交互,其对应的前端JinJa2的模板引擎,也极大地方便了前端的数据调用。

1 现有技术研究现状

目前,比较成熟的疫情数据可视化平台有:丁香园疫情数据可视化平台、腾讯疫情数据可视化平台、百度疫情数据可视化平台。这三家数据可视化平台内容分析,如图1所示。

现有技术的实现均是通过对大量的疫情数据进行爬取、数据处理,利用可视化技术进行数据的可视化。本系统集疫情数据与疫苗数据于一个页面中,让用户可以更直观的观察到疫情信息、疫苗信息。并且,本系统在疫情分布图上做出创新,在全国疫情分布图中点击各省份,直接进入各省份疫情分布图,省略其中间步骤。用户可以由全国疫情分布图直接进入各省份疫情分布圖,了解各省份的疫情分布。

2 系统架构与实现流程

2.1 系统总体架构

本系统包括疫情数据爬取与处理、数据可视化与分析两个部分。根据数据需求发起相应的Request请求,接收服务器端的响应[2]。对返回的数据进行数据处理形成数据集。最终,对数据集进行可视化。

本系统采用四层架构设计,具体分为资源层、执行层、功能层和表现层。系统总体架构图,如图2所示。

2.2 系统运行流程

本系统流程分为以下几步:①获取目标网页的URL以及Head信息;②发送Request请求获取响应数据;③数据处理;④数据可视化与数据分析。系统运行流程图,如图3所示。

3 数据爬取与处理

本系统利用数据爬虫技术获取实时疫情数据与疫苗接种情况。数据来源于丁香园疫情数据可视化平台和腾讯疫情数据可视化平台。

对爬取的数据进行数据清洗,然后转化为Json的数据字典,形成的Json数据字典重要关键键说明,如表1所示。

对爬取的数据经过数据清洗、Json数据字典的转化、数据提取等操作过后,划分为图4的两个数据集:疫情数据集、疫苗数据集。

利用SQLite数据库,完成数据存储,生成DB文件。形成单文件操作,利于后期系统的维护[3]。

4 数据可视化与数据分析

本系统基于疫情数据集以及疫苗数据集,利用Python语言的Flask框架、ECharts等技术完成数据的可视化。后端完成数据的提取与封装,利用Ajax技术完成前后端的数据交互[4]。ECharts技术与Jinja2模板引擎等技术实现数据可视化[5]。本文采用2021年6月之前的数据。

4.1 全国疫情实时追踪

全国疫情实时追踪数据可视化,后端利用SQL语言完成数据的提取,并对提取的数据进行封装[6]。总数据渲染效果如图5所示,分别以不同颜色对全国疫情数据进行了数据可视化,全国疫情数据清晰明了,用户可以直观的了解到最新的疫情数据。

4.2 全国疫情分布图

全国疫情分布图,渲染效果如图6所示,通过颜色的不同来反映该省份现有确诊的数值,并且鼠标悬停时,会显示该省份的现有确诊人数与境外输入人数[7]。用户可以直观看出全国疫情以及各省份疫情分布。现有确诊较为严重的两个城市为广东与台湾,主要确诊病例来源为境外输入病例。应加强对境外人员入境的疫情管控工作,防止境外输入病例的二次传播。

4.3 各省份疫情分布图

各省份疫情分布图,渲染效果如图7所示。在全国疫情分布图上创建点击事件,点击省份之后进入各省份疫情分布图,显示出该省各个市的疫情分布。用户可以直观的看出各省份中各个市的疫情分布,图7中以广东省为例,目前广东省疫情较为严重的地区为广州市。

4.4 累计疫情趋势图

累计疫情趋势图,渲染效果如图8所示,其中以近两个月日期为横轴,以累计疫情数据为纵轴。以不同颜色的折线来区分累计确诊、累计治愈、累计死亡、现有疑似数据。在鼠标悬停时会有这一天的全国累计疫情的数据显示[8]。由图8可以看出,从2021年5月15日开始,截止2021年6月21日累计确诊人数有明显的上升趋势,与台湾疫情的爆发以及境外输入病例的增多有密切关系。由此可以看出,疫情仍未完全褪去,并且仍有爆发的可能性。

4.5 新增疫情趋势图

新增疫情趋势图,渲染效果如图9所示。近两个月日期为横轴,以新增疫情数据为纵轴。不同颜色的折线来区分新增确诊、新增治愈、新增死亡、新增疑似数据。鼠标悬停时显示这一天的全国新增疫情数据[9]。用户由该图可以看出,从2021年4月23日开始,截止至2021年6月21日,新增确诊人数呈现先增加后减少的趋势。说明在我国先进的医疗技术下,加以民众的配合,新一轮疫情的爆发在短时间内就得到了控制。

4.6 全国疫苗数据实时追踪

全国疫苗数据实时追踪,渲染效果如图10所示。用户可以看到最新的疫苗接种情况。数据包含累计接种剂次,较昨日新增接种剂次、还有每百人接种人数。截止至2021年6月21日,最新累计接种剂次高达1049744000例,我国疫苗接种乘势而上,实现新突破。

4.7 疫苗累计接种趋势图

疫苗累计接种趋势图的可视化,渲染效果如图11所示。其中,以近两个月的日期为横轴,以疫苗累计接种剂次数据为纵轴。在鼠标悬停时会有疫苗累计接种剂次数据显示。由該图可见从2021年4月23日起,截止2021年6月21日,我国疫苗接种剂次呈明显上升趋势,疫苗接种进度推进速度正在加快。

5 结束语

截至到2021年6月,疫情仍未完全褪去,民众最为关心的是疫苗接种情况。本系统基于疫情数据显示的基础上,增加疫苗数据显示功能。利用数据爬虫技术完成数据的获取与下载,经数据处理后形成数据集,数据可视化阶段利用Python语言的Flask框架、ECharts可视化等可视化技术,对疫情数据以及疫苗数据进行数据可视化。经过对现有技术的分析,并在可视化内容上做出创新。集可视化内容于一个页面中,疫情数据与疫苗数据一目了然,用户可以从多方面,多角度,全方位直观的观察到疫情数据、疫情发展趋势,以及疫苗接种情况。本系统的开发是用来帮助民众充分了解全国各地的疫情情况、近期的疫情发展趋势以及疫苗接种情况。

参考文献(References):

[1] 周文帆.基于Flask的形式化验证系统的设计与实现[D].北京交通大学,2020.

[2] 刘玉玲,郑力新.新冠肺炎疫情数据的抓取及可视化研究[J].电子设计工程,2021.29(7):40-44

[3] 陈敬静.SQLite数据库研究与可视化[D].南京邮电大学,2020.

[4] 先巡,袁军.Ajax/Javascript在网页中的特效应用[J].黔南民族师范学院学报,2019.39(S1):100-103

[5] 郑翔,王慧芳,严娴峥,金丽娟,温桂平,何奔腾.用于APP的缺陷文本自动分类与质量保证方法[J].电力系统及其自动化学报,2020.32(7):131-136

[6] 冷四军.基于Python Flask的运维信息管理系统设计与实现[J].电脑编程技巧与维护,2021.5:87-88

[7] 彭顺生.基于ECharts的肺炎疫情数据处理与可视化[J].计算机时代,2020.7:47-49,53

[8] 杨晨,苏有慧,周军.新冠肺炎疫情大数据可视化平台设计与实现[J].计算机时代,2021.1:61-64

[9] 刘玉玲,郑力新.新冠肺炎疫情数据的抓取及可视化研究[J].电子设计工程,2021.29(7):40-44

猜你喜欢
数据可视化新冠疫情
关于新冠疫情社区防控管理的几点建议
新冠疫情下若干劳动合同问题研究
新冠疫情视阈下感悟“四个自信”国家共识
“心理成长任务包”助力学生安度疫情
关于疫情对地区经济金融影响情况的调研
新冠疫情对县域脱贫产业发展的影响及地方金融支持的建议
移动可视化架构与关键技术综述
大数据时代背景下本科教学质量动态监控系统的构建
可视化:新媒体语境下的数据、叙事与设计研究
我国数据新闻的发展困境与策略研究