pyecharts实践 您所在的位置:网站首页 确诊病例分布地图怎么看 pyecharts实践

pyecharts实践

2024-07-06 19:01| 来源: 网络整理| 查看: 265

2019-nCoV疫情数据可视化地图效果如下:

在这里插入图片描述

获取数据(本文数据获取自腾讯的疫情实时追踪)

腾讯的疫情实时追踪网页: 点击查看. 这里我使用的是Google,追踪得到的数据如下图: 在这里插入图片描述 双击左边的 getOnsInfo?name=disease_h5&callback······ , Google 打开一个新的页面,展示最新的病情数据: 在这里插入图片描述 数据分析: 在这里插入图片描述 至此,我们就获得了需要的数据啦!

我们通过requests库来采集实时数据;由于得到的数据是json格式的,所以我们还需要json库来解析数据;链表数据可以使用pandas库方便地规范化数据(当然如果不想使用pandas照样可以,稍稍改动部分代码即可)。

话不多说,上代码:

# 腾讯的疫情实时追踪接口获取json格式疫情数据 def get_ncp_data(): url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5' data = requests.get(url).json()['data'] return data # 扁平化中国疫情数据 def flatten_ncp_data(): all = json.loads(get_ncp_data()) # 初始化结果链表 provinces = [] date = all['lastUpdateTime'] china = all['areaTree'][0]['children'] # 获取各省份确诊病例 for province in china: province_ncp = province['children'] province_ncp = { '日期': date, '省份': province['name'], '累计确认': province['total']['confirm'] } provinces.append(province_ncp) return provinces 数据可视化

这里使用的是pyecharts库(当然,也可以使用Matplotlib以及其他)

# 渲染可视化地图 def render_map_chart(): provinces = flatten_ncp_data() df = pd.DataFrame(provinces) map_chart = Map() map_chart.add( "全国NCP确诊病例分布图", [list(z) for z in zip(list(df["省份"]), list(df['累计确认']))], "china", is_map_symbol_show=False ) map_chart.set_global_opts( title_opts=opts.TitleOpts( title="NCP疫情地图(" + str(datetime.date.today()) + ")" ), visualmap_opts=opts.VisualMapOpts( is_piecewise=True, pieces=[ {"min": 1, "max": 9, "label": "1-9人", "color": "#FFE6BE"}, {"min": 10, "max": 99, "label": "10-99人", "color": "#FFB769"}, {"min": 100, "max": 499, "label": "100-499人", "color": "#FF8F66"}, {"min": 500, "max": 999, "label": "500-999人", "color": "#ED514E"}, {"min": 1000, "max": 9999, "label": "1000-9999人", "color": "#CA0D11"}, {"min": 10000, "max": 100000, "label": "10000人以上", "color": "#A52A2A"} ])) map_chart.render('ncp_map_{}.html'.format(datetime.date.today()))

好啦,到这里也差不多结束了,是不是很简单呢!想学习的小伙伴可以动手实践实践!!

全部代码

python版本:python: 3.8(32-bit)

需要安装模块:

数据分析与处理(如果不想使用pandas就不用安装),建议下载对应,whl文件进行本地pip安装。下载地址如下: numpy:numpy pandas:pandas

pyecharts数据可视化分析库 pyecharts:pyecharts

此处附上网盘链接:https://pan.baidu.com/s/1cGHOxlMloDilIIK_cS8wQw 提取码:ulu0 复制这段内容后打开百度网盘手机App,操作更方便哦

import requests import json import pandas as pd import datetime from pyecharts.charts import Map from pyecharts import options as opts # 腾讯数据接口获取json格式疫情数据 def get_ncp_data(): url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5' data = requests.get(url).json()['data'] return data # 扁平化中国疫情数据 def flatten_ncp_data(): all = json.loads(get_ncp_data()) # 初始化结果链表 provinces = [] date = all['lastUpdateTime'] # 获取各省份确诊病例 china = all['areaTree'][0]['children'] # 获得中国数据 for province in china: province_ncp = province['children'] province_ncp = { '日期': date, '省份': province['name'], '累计确认': province['total']['confirm'] } provinces.append(province_ncp) return provinces # 渲染可视化地图 def render_map_chart(): provinces = flatten_ncp_data() df = pd.DataFrame(provinces) map_chart = Map() map_chart.add( "全国NCP确诊病例分布图", [list(z) for z in zip(list(df["省份"]), list(df['累计确认']))], "china", is_map_symbol_show=False ) map_chart.set_global_opts( title_opts=opts.TitleOpts( title="NCP疫情地图(" + str(datetime.date.today()) + ")" ), visualmap_opts=opts.VisualMapOpts( is_piecewise=True, pieces=[ {"min": 1, "max": 9, "label": "1-9人", "color": "#FFE6BE"}, {"min": 10, "max": 99, "label": "10-99人", "color": "#FFB769"}, {"min": 100, "max": 499, "label": "100-499人", "color": "#FF8F66"}, {"min": 500, "max": 999, "label": "500-999人", "color": "#ED514E"}, {"min": 1000, "max": 9999, "label": "1000-9999人", "color": "#CA0D11"}, {"min": 10000, "max": 100000, "label": "10000人以上", "color": "#A52A2A"} ])) map_chart.render('ncp_map_{}.html'.format(datetime.date.today())) if __name__ == '__main__': render_map_chart()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有