疫情可视化

技术栈

python+pyecharts+爬虫

爬取网址:

https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=chinaDayList,chinaDayAddList,nowConfirmStatis,provinceCompare

https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5

数据爬取:

一.爬取国内疫情数据
首先导入所需的模块:
在这里插入图片描述
编写简单的爬取肺炎数据的爬虫,首先在console里面找到的API:
在这里插入图片描述
这里使用了time模块去和时间做匹配本来想做定时功能的,定时的爬取数据
然后响应内容就是对应的json对象
在这里插入图片描述
发现resp.json()的作用就是将API页面的json转化为字典
然后我想取出其中的值:
在这里插入图片描述
结果报错:切片应该是int而不是str,仔细看了页面才知道原来data的值被封成了str
所以json.loads()作用是把str转化为字典,如果没有封成str就不用这一步。

接着就是遍历这个列表,用一个字典取存储,把新增确诊人数、累计确诊人数、死亡人数、治愈人数、死亡率、治愈率存储进字典,然后添加进列表dataset里,最后在用pandas的DataFrame将dataset转换为表格形式,将其存进一个csv文件里
在这里插入图片描述

二.爬取近两个月内的中国确诊人数

导入所需的库

import requests
# import json
import pandas as pd

利用requests库去模拟浏览器请求数据
在这里插入图片描述
将爬取的内容转换为字典并取其中的值,resp.json()的作用就是将API页面的json转化为字典,用字典去存储爬取下来了的日期值还有确诊人数值,最后将字典添加到一个列表里,并打印列表的数据观察
在这里插入图片描述
接着将爬取的列表数据利用pandas这个库,将其转换为DataFrame对象,并存储到当前目录下的国内近两个月新增确诊数csv文件中
在这里插入图片描述

地图实现:

引入所需的库pandas和库pyecharts的Map和options
在这里插入图片描述
对csv文件进行读取并获取省份列表和确诊人数,将两个列表用zip连接起来形成一个新的列表
在这里插入图片描述
核心部分,构造一个画地图所需的Map,初始化配置项,初始化该地图的宽高还有网页标题;
将列表的数据添加进图中;
设置全局配置项,包括设置标题,视觉映射配置项(设置分段的规格),以及将分段字段设置为True;
最后将画出的地图保存在一个html进行展示,调用的方法是render()。
在这里插入图片描述

近两个月中国确诊人数折线图的实现:

折线图所需的库有Line和options以及处理数据的pandas
在这里插入图片描述
对数据进行处理,获取csv文件中的日期列表和对应日期的确诊人数列表,因为日期列表如果不转换成字符串类型类别会使得折线图混乱,所以日期列表需要转换为字符串列表
在这里插入图片描述
核心部分:构造一个Line对象,设置初始化配置项,设置画布的宽高还有网页标题;
添加x轴的数据以及添加y轴的数据;
设置全局配置项(设置标题);
最后调用render方法,生成中国疫情折线图
在这里插入图片描述

34个省份的出生率和死亡率柱状图的实现

柱状图所需的库有Bar和options以及处理数据的pandas

在这里插入图片描述
柱状图所需的数据有省份的名称列表、治愈率列表、死亡率列表,运用pandas读取国内疫情数据的csv文件,并获取对应的名称、治愈率、死亡率存储到对应的列表中。
在这里插入图片描述
核心部分:画柱形图所需的Bar对象,初始化配置项,设置画布的宽和高还有网页标题;
x轴添加省份列表,y轴添加治愈率和死亡率列表;
设置全局配置项,设置标题配置项;
最后调用render方法绘制生成柱状图。
在这里插入图片描述

34个省份的确诊人数词云图的实现:

导入词云图所需的库options pandas WordCloud
在这里插入图片描述
绘制词云图,词云图的数据是一个列表,列表的数据格式为省份列表和省份对应的确诊人数列表,所以先读取csv的数据获取省份确诊人数和省份名称添加到一个zip中,然后将zip转换为列表
在这里插入图片描述
核心部分:画词云图需要一个WordCloud,然后初始化配置项,添加网页标题,宽和高默认;
接着利用data_pair添加列表数据,设置显示的次的大小的范围;
接着设置全局配置项,设置标题,设置标题文本的配置项(设置字体大小);
设置工具提示配置项;
最后调用render方法画出词云图。
在这里插入图片描述

34个省份的确诊人数环图(饼图)的实现:

echarts的init方法
导入饼图所需的库
在这里插入图片描述
利用pandas的read_csv方法读取csv中省份的数据存储到列表还有省份确诊人数存储到列表
在这里插入图片描述
核心部分:画饼图需要一个Pie对象,然后初始化配置项,添加网页标题,宽和高;
接着调用add方法设置饼图的数据data_pair,设置环图的半径;
最后调用render方法画出饼图。
在这里插入图片描述

最终成品

全国各个省份的确诊人数环图

在这里插入图片描述

全国各个省份的确诊人数词云图

在这里插入图片描述

全国各个省份的确诊人数地图

在这里插入图片描述

全国近两个月的确诊人数折线图在这里插入图片描述

全国各个省份的死亡率和治愈率柱形图在这里插入图片描述

源码地址

源码下载

参考资料

json.loads()和response.json()的区别

推荐一款Python数据可视化神器

python 数据可视化

[pyecharts学习笔记]——全局配置项(InitOpts初始化配置项)

pyecharts官网

gallery.pyecharts.org

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Summer524!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值