新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势

-

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第1张图片

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

01

Python实时数据爬取

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

爬虫目标网站:

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

1. 分析网站


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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第2张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第3张图片

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第4张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第5张图片

3. 获取湖北省疫情数据

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第6张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第7张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第8张图片

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第9张图片

4. 获取各省确诊人数

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第10张图片

输出结果如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第11张图片

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

02

Matplotlib绘制柱状图

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第12张图片

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

输出结果如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第13张图片

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

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

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

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

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第14张图片

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第15张图片

03

数据存储及Seaborn绘制柱状图

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

安装:pip install seaborn

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第16张图片

1. 文件写入

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第17张图片

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第18张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第19张图片

2. Seaborn绘制柱状图

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第20张图片

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

显示结果如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第21张图片

04

Seaborn绘制对比柱状图

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第22张图片

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第23张图片

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

此时绘制如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第24张图片

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

  • 归一化处理

  • 湖北省外和湖北省内对比

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第25张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第26张图片

05

Seaborn绘制趋势图及对比图

1. 湖北省内外对比图

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第27张图片

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第28张图片

输出结果如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第29张图片

2. 疫情趋势图

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第30张图片

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第31张图片

06

Seaborn绘制其他图形及分析

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

1. KDE图

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第32张图片

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

显示如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第33张图片

2. 六角形

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第34张图片

3. 散点图

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第35张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第36张图片

07

贵州省可视化分析

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第37张图片

输出结果如下图所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第38张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第39张图片

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

完整输出内容如下所示:

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第40张图片

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第41张图片

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第42张图片

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

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

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第43张图片

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第44张图片

参考文章:

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

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

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

End.

作者:Eastmount

来源:CSDN

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

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

零基础学 Python,请往看下嘛

新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势_第45张图片

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

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

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

你可能感兴趣的:(新冠疫情数据分析 | Python&可视化工具看全国各地的新增趋势)