疫情数据可视化 # 编程大实践 # 嵩天 # Python # Cilay

发布于:2022-11-09 ⋅ 阅读:(8) ⋅ 点赞:(0) ⋅ 评论:(0)

疫情数据可视化

一、项目背景

1.2021年新型冠状病毒疫情

截至欧洲中部时间12月29日16时14分,全球确诊病例较前一日增加1351175例,达到281808270例;死亡病例增加7605例,达到5411759例。

2月6日0—24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例79例。

其中境外输入病例34例(广东21例,上海8例,北京1例,浙江1例,福建1例,河南1例,广西1例),含4例由无症状感染者转为确诊病例(浙江1例,福建1例,广东1例,广西1例);本土病例45例(广西37例,均在百色市;广东4例,其中深圳市3例、广州市1例;北京3例,其中朝阳区1例、丰台区1例、西城区1例;天津1例,在河北区),含1例由无症状感染者转为确诊病例(在北京)。无新增死亡病例。新增疑似病例1例,为境外输入病例(在上海)。

截至2月6日24时,据31个省(自治区、直辖市)和新疆生产建设兵团报告,现有确诊病例1495例(其中重症病例6例),累计治愈出院病例100288例,累计死亡病例4636例,累计报告确诊病例106419例,现有疑似病例1例。累计追踪到密切接触者1545664人,尚在医学观察的密切接触者43234人。

截至2021年12月31日9时,31个省(自治区、直辖市)和新疆生产建设兵团现有疫情高风险地区2个,中风险地区65个。

2.ECharts

ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。

2021年1月26日晚,Apache基金会官方宣布ECharts项目正式毕业。1月28日,ECharts 5线上发布会举行。

官方地址:Apache ECharts

3.pyecharts

Apache ECharts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。

项目地址:https://github.com/pyecharts/pyecharts

二、项目目标

1.主要目标

2021年新冠累计确诊数据使用 zip 压缩文件给出, 内含以日期分类的独立的 csv 文件, 文件以日期命名, 格式为 yyyy-mm-dd.csv。

编写程序读取 zip 文件中所包含的新增确诊数据,生成可视化疫情地图程序。

2.目标分解

  • 读取压缩文件

  • 统计相关输入

  • 渲染统计数据

三、技术选型

1.问题:可以使用其他可视化工具吗?

当然可以,不过在这里推荐 PyEcharts。

2.问题:如何读取 csv 文件?

标准库csv:csv --- CSV 文件读写 — Python 3.10.8 文档

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

>>> import csv
>>> with open('eggs.csv', newline='') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
...     for row in spamreader:
...         print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam

3.问题:如何读取解压 ZIP 文件?

标准库zipfile :zipfile --- 使用ZIP存档 — Python 3.10.8 文档

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

import zipfile
with ZipFile('spam.zip', 'w') as myzip:
    myzip.write('eggs.txt')

四、课堂要求

1.提交项目结构

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

Data.zip						新冠疫情确诊数据
main.py							项目执行主文件
README.md						项目描述说明文档
requirements.txt		项目依赖包版本号(项目需要下载到本地执行,如果有第三方依赖包,必须填写)

2.标注核心函数位置

--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

# 主程序 位于main.py文件 第30行

def main():
  	"""主程序"""
    pass

3.程序运行效果截图