ECharts实现新冠病毒全国疫情地图可视化效果
项目GitHub地址
-
效果1(分段映射)
-
效果2(连续映射)
-
前几天使用basemap + matplotlib实现了新冠病毒全国疫情地图可视化,但是美观性不是太好
-
通过比较多个可视化工具,发现还是ECharts最适合中国地图可视化
-
ECharts有很好的交互性,鼠标放置地图上可以显示具体的人数,拖动滑条可以查看不同的范围
-
ECharts地图数据丰富,图表美化的很好,很多功能不用单独去设置,输出的图片已经是优化后的结果
-
虽然有pyecharts库,但是相对于原装的ECharts功能还是少一些,设置上也稍微麻烦一点
-
推荐直接使用ECharts,更新维护更加方便
1. 获取及提取数据
- 使用requests请求获取原始数据即可
# -*- coding:utf-8 -*-
# project_xxx\venv\Scripts python
'''
Author: Felix
WeiXin: AXiaShuBai
Email: xiashubai@gmail.com
Blog: https://blog.csdn.net/u011318077
Date: 2020/1/30 20:33
Desc:
'''
import requests
import json
class nCovData():
def __init__(self):
# 获取原始全国疫情数据的网址
self.start_url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
def get_html_text(self):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:66.0) Gecko/20100101 Firefox/66.0'}
res = requests.get(self.start_url, headers=headers, timeout=30)
res.encoding = 'utf-8'
# 将获取到的json格式的字符串类型数据转换为python支持的字典类型数据
data = json.loads(res.text)
# 所有的疫情数据,data['data']数据还是str的json格式需要转换为字典格式,包括:中国累积数据、各国数据(中国里面包含各省及地级市详细数据)、中国每日累积数据(1月13日开始)
all_data = json.loads(data['data'])
# print(all_data)
return all_data
if __name__ == '__main__':
ncovdata = nCovData()
ncovdata.get_html_text()
- 提取需要的数据
# -*- coding:utf-8 -*-
# project_xxx\venv\Scripts python
'''
Author: Felix
WeiXin: AXiaShuBai
Email: xiashubai@gmail.com
Blog: https://blog.csdn.net/u011318077
Date: 2020/1/30 21:15
Desc:
'''
from nCov_data_analysis import a_get_html
import json
class ProvinceData():
def __init__(self):
# 获取所有的疫情数据,字典格式
self.ncovdata = a_get_html.nCovData()
self.all_data = self.ncovdata.get_html_text()
def province_total_data(self):
'''获取各省的累积数据'''
# areaTree对应的第一个数