【Python+Flask+Echarts】可视化练习题----疫情数据热⼒图
⽂章⽬录
⼀、热⼒图介绍
热⼒图,有时也称之为交叉填充表。该图形最典型的⽤法就是实现列联表的可视化,即通过图形的⽅式展现两个离散变量之间的组合关系
用html设计一个疫情网页代码
类型:关系型数据的可视化
特点:热⼒图体现了两个离散变量之间的组合关系
Echarts官⽅实例:
⼆、案例
①分析提取需求
数据集
数据主要字段:⽇期、省份、城市、新增确诊、新增出院、新增死亡、消息来源、来源1,来源2,来源3。
1.通过对数据集的观察,城市字段缺失较难恢复,本想通过来源提取城市信息,但是在来源字段中内
容分布不规则,⽆法有效提取。所以只能对这
部分空值记录删除。
2.通过热⼒图的定义,以及官⽅实例得出最关键的是:热⼒图热⼒图体现了两个离散变量之间的组合关系。也就是包含有两个变量,以
及最后的组合结果,可以反映出哪些信息内容。在这⾥,我们不妨设想:展现出某⼀省份与其城市之间组合可以得到什么。⽐如:某⼀省份的不同城市新增确诊⼈数/新增出院⼈数…
3.问题⼜来了,只⽤某⼀省份与其城市,绘制出来热⼒图就是⼀张横条,未免显得太尴尬。可以继续扩充。同时加上⽇期,但是⽇期按照
天数太多(若只统计某⼀个⽉还可以),这⾥就暂定⽉份。
4.综上所述,需求基本如下:绘制某省的各市在已知的每个⽉中新增确诊数热⼒图。
5.基本模板
②代码实现
▶读取数据
import pandas as pd
from flask import Flask,render_template
# ⽇期、省份、城市、新增确诊、新增出院、新增死亡、消息来源、来源1,来源2,来源3
columns =['⽇期','省份','城市','新增确诊','新增出院','新增死亡','消息来源','来源1','来源2','来源3']
data = pd.read_csv("G:\Projects\pycharmeProject-C\Flask\dataset\yiqing.csv",names=columns,index_col=False)
数据读取的时候通过names参数添加列名;index_col参数可以强制读取时不使⽤第⼀列作为索引,否则会出现下图⼆错位的现象。
▶简单清洗
# 简单清洗数据
# 去重
print(data.shape)
print(data.loc[data.duplicated()])
print(data.drop_duplicates().shape)
# 去空 --- 提取城市不为空的记录
print(data.isnull().sum())
data = data.loc[~data['城市'].isnull()]
# 查看数据类型
print(data.dtypes)
▶提取需求信息
# 提取武汉信息
hb_data = data.loc[data['省份']=='湖北',['城市','⽇期','新增确诊']]
# 提取⽉份信息
hb_data['⽇期']=[str(x)[0:2]for x in hb_data['⽇期']]
# 分组聚合统计
result = upby(['城市','⽇期']).agg(count=('新增确诊','count')).reset_index() print(result.shape[0])# 58
citys = result['城市'].unique().tolist()# x轴标签
dates = result['⽇期'].unique().tolist()# y轴标签
count = result['count'].list()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。