首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用 Python 撸一个全国疫情地图,其实一点都不难

用 Python 撸一个全国疫情地图,其实一点都不难

作者头像
IT苦逼一枚
发布于 2020-02-17 09:15:47
发布于 2020-02-17 09:15:47
1.7K00
代码可运行
举报
文章被收录于专栏:测试帮日记测试帮日记
运行总次数:0
代码可运行

响应号召,宅在家里。修修小技术,水水小代码。加油!热干面!

首先我们假设Python的基本环境已经搭建好了,Let's begin。

一、爬取数据

1)安装常用的python爬虫工具:beautifulsoup4、requests

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install requests
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install beautifulsoup4

2)找一个数据源

在度娘上搜了搜,觉得腾讯的疫情实时追踪非常好。因为他非常友好的把疫情数据公开输出到了console中

网址:https://news.qq.com/zt2020/page/feiyan.htm

我们在网站页面上单击鼠标右键,选择检查

图1 网站截图

选择Console,我们看到了什么

,这是腾讯大大们抓取处理的所有数据,直接输出到了控制台中。我看可以看到JSON数据格式中:lastUpdateTime是数据的最新更新时间;chinaTotal中是目前的确诊数、疑似数、死亡数、治愈数;chinaDalyList中是1月13日至今的全国总数据;areaTree中是全国详细的数据。

图2 控制台输出截图

图3 areaTree中的全国数据

我们只需要国内的数据,所以只需要第0个children中的数据。

图4 areaTree中的国内数据

现在数据格式知道了,我们来切换到输出这些数据的intro_vp_trim.js脚本中看看这些数据是怎样来的。

图5 数据的获取

我们可以看到数据是从哪个接口获取的,那么我们只需要在Python中抓取这个接口返回的数据即可,事情变得非常简单了。

3)python抓取数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import json
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
data = json.loads(requests.get(url=url).json()['data'])
china = data['areaTree'][0]['children']

现在国内的数据就全部在china变量中了,为了方便绘制地图,将各省份的数据提取出来备用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = []
for i in range(len(china)):
    data.append([china[i]['name'],china[i]['total']['confirm']])

二、绘制地图

我们用pyecharts中的GEO来绘制地图,首先需要安装各种包。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pyecharts
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

如果网速很慢,可以临时用国内的映像,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pyecharts -i http://mirrors.aliyun.com/pypi/simple/

pyecharts目前已经更新到了V1版本,并且与V0.5版本不兼容,也不再维护V0.5版本。我们直接用的是V1版本。

官方网站:https://pyecharts.org/

我们先导入必要的库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import json
from pyecharts.charts import Map, Geo
from pyecharts import options as opts
from pyecharts.globals import GeoType,RenderType

用全国数据生成个副标题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
china_total = "确诊:"+ data['chinaTotal']['confirm'] + \
              " 疑似:" + data['chinaTotal']['suspect'] + \
              " 死亡:" +  data['chinaTotal']['dead'] +  \
              " 治愈:" +  data['chinaTotal']['heal'] + \
              " 更新日期:" + data['lastUpdateTime']

设置GEO

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geo = (
    Geo(init_opts = opts.InitOpts(width="1200px",height="600px",bg_color="#404a59",page_title="全国疫情实时报告",renderer=RenderType.SVG,theme="white"))#设置绘图尺寸,背景色,页面标题,绘制类型
    .add_schema(maptype="china",itemstyle_opts=opts.ItemStyleOpts(color="rgb(49,60,72)",border_color="rgb(0,0,0)"))#中国地图,地图区域颜色,区域边界颜色
    .add(series_name="geo",data_pair=data,type_=GeoType.EFFECT_SCATTER)#设置地图数据,动画方式为涟漪特效effect scatter
    .set_series_opts(#设置系列配置
        label_opts=opts.LabelOpts(is_show=False),#不显示Label
        effect_opts = opts.EffectOpts(scale = 6))#设置涟漪特效缩放比例
    .set_global_opts(#设置全局系列配置
        visualmap_opts=opts.VisualMapOpts(min_=0,max_=sum/len(data)),#设置视觉映像配置,最大值为平均值
        title_opts=opts.TitleOpts(title="全国疫情地图", subtitle=china_total,pos_left="center",pos_top="10px",title_textstyle_opts=opts.TextStyleOpts(color="#fff")),#设置标题,副标题,标题位置,文字颜色
        legend_opts = opts.LegendOpts(is_show=False),#不显示图例
    )
)

绘制到html文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geo.render(path="./html/render.html")

效果预览

图6 效果截图

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试帮日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python3--监控疫情
from pyecharts.charts import Map, Geo
用户2337871
2020/02/18
5190
Python3--监控疫情
python可视化来分析全国疫情
很长一段时间在python下出图都是使用matplotlib,其好处就是应用比较广泛,文档很容易找,不过出的图微显丑陋。pyecharts 是百度的echarts基于python的实现,可以很方便的直接在python里进行调用。其出的图相当漂亮。但由于版本原因,一些方法可能和老的版本会有不同。
Lansonli
2021/10/09
5980
pyecharts︱交互式pyecharts的相关使用教程
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。以下是最新版echart的靓图。当然,pyecharts貌似没有这么齐全。
悟乙己
2022/05/09
3.3K0
pyecharts︱交互式pyecharts的相关使用教程
干货 | 使用pyecharts绘制交互式动态地图
说到pyecharts,相信很多人不会陌生,一个优秀的python可视化包。 pyecharts是中国人开发的,相比较matplotlib、seaborn等老牌可视化库,pyecharts是十分符合国内用户习惯的,尤其在地理空间图表方面。 本文是想试探一下pyecharts在绘制地理图表方面的功底如何,那就开始吧!
派大星的数据屋
2022/04/02
1.4K0
干货 | 使用pyecharts绘制交互式动态地图
Python Geo 地图
参考:# https://github.com/pyecharts/pyecharts/blob/master/example/geo_example.py
Java架构师必看
2021/08/09
8620
vue实现世界疫情地图(点击进入子地图)
用axios请求这些数据如果出现跨域问题,就设置本地代理,在根目录下创建vue.config.js文件
代码哈士奇
2021/01/26
1.2K0
vue实现世界疫情地图(点击进入子地图)
十分钟生成自己的疫情地图,小白都能立刻上手!
当下,新型冠状病毒感染的肺炎疫情无时无刻不牵动着人们的心。面对来势汹汹的疫情,除了奋战在前线的医护人员以及防疫建设工作者们,小媛们也想尽一份绵薄之力。
用户3946442
2022/04/11
9270
十分钟生成自己的疫情地图,小白都能立刻上手!
[710]python使用pyecharts绘制地图
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
周小董
2020/01/13
3.8K0
[710]python使用pyecharts绘制地图
Python数据可视化(二)
随着地理信息系统(GIS)技术的迅猛发展和大数据时代的到来,数据可视化已经成为分析和理解数据的重要手段。而在众多的数据可视化形式中,地图结合了数据与地理信息,具有独特的空间表现力。本章结合案例分析详细讲解了地图的基础绘图以及视觉映射方面的内容。
Heaven645
2024/08/01
2161
Python数据可视化(二)
利用Python分析快手APP全国大学生用户数据(2022 年初赛第四题 )
背景:利用Python分析快手APP全国大学生用户数据,发现: 哪个学校的学生最喜欢使用快手APP Android、IOS、PC三大平台用户占比份额 全国哪些城市(学校所在地)的学生使用频次最高 全国哪些省份的生源最喜欢使用快手APP ...... 数据:快手APP大学生用户分析数据.csv 数据结构如下(字段名都为中文):
繁依Fanyi
2023/05/03
5370
这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
编辑 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 转载请联系授权(微信ID:Hc220066)
杰哥的IT之旅
2020/09/22
2K0
这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
地图可视化不只是pyecharts.map
导读:地图可视化是一种非常直观的数据分析结果展现形式,python有很多可视化库可以实现,pyecharts就是很多python爱好者喜爱的实现地图可视化方法之一。不可否认,pyecharts绘制的地图实现方便、图形美观而且支持交互,但在面对不同需求时,其实我们还有很多其他手段实现地图可视化。
luanhz
2020/03/31
1.7K0
地图可视化不只是pyecharts.map
数据可视化第二版-03部分-10章-地理特征
本系列博客为基于《数据可视化第二版》一书的教学资源博客。本文主要是第10章,地理特征可视化的案例相关。
IT从业者张某某
2023/10/16
3450
数据可视化第二版-03部分-10章-地理特征
就是这么简单,Pyecharts绘制可视化地图!
Pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
小F
2021/04/26
2.8K0
就是这么简单,Pyecharts绘制可视化地图!
数据可视化之项目 | 疫情数据分析
「# 数据说明:这些数据目前是字典,对于pandas数据分析,我们要把这些数据变成dataframe,然后可以导入到excel或者SQL中」
润森
2022/08/18
6740
数据可视化之项目 | 疫情数据分析
每日一练:Python国内疫情数据爬取与地图绘制
[ 相关文章 ] 每日一练:Python 爬虫爬取全国新冠肺炎疫情数据实例详解,使用 beautifulsoup4 库实现
小蓝枣
2022/05/07
8700
每日一练:Python国内疫情数据爬取与地图绘制
Python可视化神器1-Pyecharts绘图详细教程-初识Pyecharts
示例位于 https://gallery.pyecharts.org/#/README
北京-宏哥
2024/01/24
7K1
地图(八)利用python绘制散点地图
2. 基于pyecharts的涟漪散点地图(Effect Scatter Map)
HsuHeinrich
2025/04/01
2770
地图(八)利用python绘制散点地图
实战|Python轻松实现地图可视化(附详细源码)
Python的地图可视化库很多,Matplotlib库虽然作图很强大,但只能做静态地图。而我今天要讲的是交互式地图库,分别为pyecharts、folium,掌握这两个库,基本可以解决你的地图可视化需求。
程序员迪迪
2022/01/12
7.6K1
python最全画地图,可视化数据,pyecharts画图<一>
有时我们会很希望把数据展示在地图上,来做数据可视化,使数据更加清晰明了,可谓一图胜百文。先说说我用地图做什么了:微信好友全国分布,显示票房省份数据,全国评分显示等等,我这个语言能力很是头疼啊,进入正题吧!
Python疯子
2018/09/06
8K0
python最全画地图,可视化数据,pyecharts画图<一>
相关推荐
Python3--监控疫情
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档