疫情数据可视化
一、项目背景
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诞生了。
二、项目目标
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