该项目是浙江大学地理空间数据库课程作业8:空间分析中,使用 flask + pyecharts 搭建的简单新冠肺炎疫情数据可视化交互分析平台的一部分,完整的实现包含疫情数据获取、态势感知、预测分析、舆情监测等任务;
包含完整代码、数据集和实现的github地址:
https://github.com/yunwei37/COVID-19-NLP-vis
项目分析报告已部署到网页端,可点击http://flask.yunwei123.tech/进行查看,数据已更新到6.17
本项目采用flask作为后端,使用pyecharts进行数据可视化,通过ajax实现动态交互可视化效果;
疫情数据曲线图、日历图
疫情数据曲线图:可选择国家
疫情新增确诊病例日历图:
pyecharts 代码实现:
import time, json
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode
country_name = '中国'
def render_lines(country_name):
#-------------------------------------------------------------------------------------
# 第一步:读取数据
#-------------------------------------------------------------------------------------
n = "dataSets\\countrydata.csv"
data = pd.read_csv(n)
data = data[data['countryName'] == country_name]
date_list = list(data['dateId'])
date_list = list(map(lambda x:str(x),date_list))
confirm_list = list(data['confirmedCount'])
current_list = list(data['currentConfirmedCount'])
dead_list = list(data['deadCount'])
heal_list = list(data['curedCount'])
print(len(date_list))
#print(date_list) # 日期
#print(confirm_list) # 确诊数据
#print(current_list) # 疑似数据
#print(dead_list) # 死亡数据
#print(heal_list) # 治愈数据
#-------------------------------------------------------------------------------------
# 第二步:绘制折线面积图
#-------------------------------------------------------------------------------------
line = (
Line()
.add_xaxis(date_list)
# 平均线 最大值 最小值
.add_yaxis('确诊数据', confirm_list, is_smooth=True,
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max"),
opts.MarkPointItem(type_="min")]))
.add_yaxis('现存确诊数据', current_list, is_smooth=True,
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max"),
opts