pyecharts实践--2019-nCoV疫情数据可视化地图(实时更新)

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()

  • 点赞 2
  • 收藏
  • 分享
    • 文章举报
Alita-99
发布了9 篇原创文章 · 获赞 5 · 访问量 343
私信 关注

猜你喜欢

转载自blog.csdn.net/qq_42964349/article/details/104346693
pyecharts实践--2019-nCoV疫情数据可视化地图(实时更新)
利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图
2019-nCov疫情实时趋势数据可视化Echarts学习(1):柱图和折线图
利用Python爬取新冠肺炎疫情实时数据,Pyecharts画2019-nCoV疫情地图
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
Python实战:抓取肺炎疫情实时数据,画2019-nCoV疫情地图
python获取2019-nCoV疫情实时追踪数据
python获取2019-nCoV疫情实时追踪数据
绘制2019-nCoV动态疫情地图
Python爬虫小记(2) :抓取全国各省市疫情实时数据 绘制2019-nCoV疫情地图
漏刻有时开源框架:2019-nCov疫情防控数据可视化大屏作战室
用Matplotlib跟踪疫情实时监控2019-nCoV
2019-nCoV (战疫情)
python实现2019-nCoV疫情确诊数据拟合与预测
pyecharts 疫情可视化数据可视化(二)
PyEcharts——地图-数据可视化
HTML + Python + Django + 爬虫 + Pyecharts 实现疫情大数据可视化实时动态展示
基于Python的疫情数据可视化(matplotlib,pyecharts动态地图,大屏可视化)
用matplotlib和pyecharts实现对疫情数据可视化(持续更新)
2019-nCoV 全国新型肺炎疫情每日动态趋势可视图
运用python实现2019-nCoV疫情确诊数据拟合与预测
新型冠状病毒 2019-nCoV实时数据提取方法及实时播报实现方案
python 疫情可视化pyecharts
【Python】实时采集疫情数据,打造可视化地图,防疫从你我做起
爬虫实战:Pyecharts实现2020疫情动态实时播报可视化
Pyecharts数据可视化
pyecharts地图可视化攻略
pyecharts绘制地图可视化
Python基础综合案例 - 数据可视化 - 地图可视化(全国疫情地图与河南省疫情地图)
疫情统计可视化地图+数据下钻
今日推荐
周排行
小程序的背景图片
SpringBoot项目架构小实例
[多线程] Wait和Notify方法解析
第五章 绘图基础(ALTWIND)
HDU 6386 Age of Moyu 【bfs】【spfa】
如何在windows上搭载PHP环境并编写运行第一个PHP代码
CF1006C 【Three Parts of the Array】
FastAdmin 增删改查在哪里?
区块链安全吗?
docker Dockerfile实战
每日归档
更多
2024-06-16(0)
2024-06-15(0)
2024-06-14(0)
2024-06-13(0)
2024-06-12(0)
2024-06-11(0)
2024-06-10(0)
2024-06-09(0)
2024-06-08(0)
2024-06-07(0)

两个鬼故事穿成暴戾大佬的小人鱼科大讯飞语音合成系统公司起名网 免费伊万的童年格美起名网免费测名打分outlook注册玫瑰花油画鸢女孩起名男起名楚辞女名字诗经起英文名网取名免费无线通讯设备起名白熊阅读ck电影下载给汽车美容院起名爱上查美乐的演员表冯起名字大全女孩尽善尽美起名表示健康平安的字的海之声好旺角房屋中介金姓宝宝起名大全男孩免费主题宝宝起名以诗决战法庭赵氏起的男孩名字大全听起来霸气的名字素质拓展总结起点实名认证要手持身份证属猪的陈姓起名给姓方的女宝宝起名少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

两个鬼故事 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化