新冠疫情数据分析 您所在的位置:网站首页 全国确诊人数最新情况 新冠疫情数据分析

新冠疫情数据分析

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

-

本篇文章将分享腾讯疫情实时数据抓取,获取全国各地和贵州省各地区的实时数据,并将数据存储至本地,最后调用Maplotlib和Seaborn绘制中国各地区、贵州省各城市、新增人数的图形。希望这篇数据可视化分析文章对您有所帮助!

01

Python实时数据爬取

我们的目标网站是腾讯新闻网实时数据,其原理主要是通过Requests获取Json请求,从而得到各省、各市的疫情数据。

爬虫目标网站:

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

1. 分析网站

通过浏览器“审查元素”查看源代码及“网络”反馈的消息,如下图所示:

对应的响应信息如下所示:

2. 发送请求并获取Json数据

通过分析url地址、请求方法、参数及响应格式,可以获取Json数据,注意url需要增加一个时间戳。下面代码展示了获取数据的键值及34个省份。

输出结果如下图所示,其顺序按照确诊人数排序。

3. 获取湖北省疫情数据

接着通过 num[0][‘children’] 获取湖北省的疫情数据,代码如下:

同样的方法可以获取各省份的数据,比如 num[1][‘children’] 表示广东省疫情数据,我们设置循环就能获取所有数据。其数据包括当日数据(today)和累计数据(total),confirm表示确诊、suspect表示疑似、dead表示死亡、heal表示治愈。

我们将所抓取的数据和真实的数据进行对比,武汉截止2月13日下午4点,新增确诊人数13436、累计确诊32994,发现是完全一致的。

4. 获取各省确诊人数

注意,初始化每个省份人数为0,然后循环累加该省所有城市的确诊人数,调用 city_data[‘total’][‘confirm’] 获取各城市的确诊数据。

输出结果如下图所示:

接下来我们分享可视化画图。

02

Matplotlib绘制柱状图

首先,我们调用Matplotlib绘制全国各地区的确诊人数柱状图,帮助大家回忆其基本用法。total_data为字典变量键值对,比如{‘湖北’: 48206, ‘广东’: 1241,…}

代码过长仅展示部分,完整代码请添加客服领取

输出结果如下图所示:

那么,如果我想获取累计确诊人数、新增确诊人数、死亡人数和治愈人数,并进行可视化展示,怎么办呢?只需要简单替换参数即可。

city_data[‘total’][‘confirm’] 确诊人数

city_data[‘total’][‘suspect’] 疑似人数

city_data[‘total’][‘dead’] 死亡人数

city_data[‘total’][‘heal’] 治愈人数

city_data[‘today’][‘confirm’] 新增确诊人数

代码过长仅展示部分,完整代码请添加客服领取

输出如下图所示,但是Matplotlib画图不太美观,接下来分享Seaborn可视化。

03

数据存储及Seaborn绘制柱状图

Seaborn是在Matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。

安装:pip install seaborn

1. 文件写入

代码过长仅展示部分,完整代码请添加客服领取

存储成功之后,如下图所示。

对应腾讯的数据,如下图所示:

2. Seaborn绘制柱状图

代码过长仅展示部分,完整代码请添加客服领取

显示结果如下图所示:

04

Seaborn绘制对比柱状图

如果需要显示多个数据对比,则需要使用下面的代码。由于Seaborn能够进行按类别分组绘图,我们需要将抓取的数据存储为如下图所示的文件,才能将数据绘制在同一张图中。

代码过长仅展示部分,完整代码请添加客服领取

此时绘制如下图所示:

但是当数据很小时,其柱状图无法很好地显示,建议采用以下方法处理:

归一化处理

湖北省外和湖北省内对比

替换成新增确诊病例的对比图如下所示。

05

Seaborn绘制趋势图及对比图

1. 湖北省内外对比图

在做数据分析过程中,我们通常需要对数据进行预处理或加工,下面将数据划分为湖北省内和湖北省外,再绘制对应的对比图。

输出结果如下图所示:

2. 疫情趋势图

代码过长仅展示部分,完整代码请添加客服领取

输出结果如下图所示,疑似人数开始下降。武汉加油,中国必胜!

06

Seaborn绘制其他图形及分析

作者这里仅补充绘图语法,更多分析结果(死亡数-治愈数)请读者进行。同时,读者可以增加数据量,全国所有城市的数据,可能绘制的图形更为丰满。

1. KDE图

sns.jointplot(x=“dead”, y=“heal”, data=data, kind=“kde”, space=0, color="#6AB27B")

代码过长仅展示部分,完整代码请添加客服领取

显示如下图所示:

2. 六角形

sns.jointplot(x=“dead”, y=“heal”, data=data, color=“b”, kind=‘hex’)

3. 散点图

sns.jointplot(x=“dead”, y=“heal”, data=data, color=“b”, s=50, kind=‘scatter’, space = 0.1, size = 8, ratio = 5)

4. 回归图

sns.jointplot(x=“dead”, y=“heal”, data=data, color=“b”, kind=‘reg’)

5. 散点图+KDE 图

g = (sns.jointplot(x=“dead”, y=“heal”, data=data, color=“k”).plot_joint(sns.kdeplot, zorder=0, n_levels=6))

07

贵州省可视化分析

接着我们抓取某一个省的数据,比如贵州省。

输出结果如下图所示:

添加解析数据和存储文件,完整代码如下:

代码过长仅展示部分,完整代码请添加客服领取

完整输出内容如下所示:

最后采用Seaborn绘制图形如下所示:

代码过长仅展示部分,完整代码请添加客服领取

贵州省2月13日疫情显示结果如下所示:

参考文章:

Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图

用Python抓新型冠状病毒肺炎疫情数据,绘制全国疫情分布图

2020Python开发者日:爬虫框架的技术实现与模块应用的经验分享

End.

作者:Eastmount

来源:CSDN

https://blog.csdn.net/Eastmount/article/details/104298388

本文为转载分享,如侵权请联系后台删除

零基础学 Python,请往看下嘛

 只需7天时间,跨进Python编程大门,已有3800+加入

【基础】0基础入门python,24小时有人快速解答问题;【提高】40多个项目实战,老手可以从真实场景中学习python;【直播】不定期直播项目案例讲解,手把手教你如何分析项目;【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。【人脉】收获一群志同道合的朋友,并且都是python从业者【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。

【赠予】价值109元 0基础入门在线课程,免费送给圈友们,供巩固



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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