Python获取疫情数据, 并做数据可视化展示

一、先看一下效果

获取的全国疫情数据:
在这里插入图片描述
可视化后的效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、环境以及模块

环境

  • python3.8
  • pycharm2021

模块

  • json
  • requests 爬虫当中 发送网络请求
  • pandas 表格处理 / 保存数据
  • pyecharts 可视化

三、爬虫(采集网络当中数据 文本 图片 视频 音频)流程:

1. 明确需求

我们要爬取的内容是什么?
分析数据从哪里来的 https://news.qq.com/zt2020/page/feiyan.htm#/
用开发者工具 进行抓包(数据包)分析

2. 代码流程
  1. 发送请求 访问网站 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&_=1638361138568
  2. 获取数据
  3. 解析数据
  • xpath css re json bs4(过时了)
  • json 在python语言当中 字典类型数据 {键1:值1, 键2:值2, 键3:值3}
  1. 保存数据
3.数据分析 数据可视化

四、代码

1.获取数据,保存数据
import requests      # 发送网络请求模块
import json
import pprint        # 格式化输出模块
import pandas as pd  # 数据分析当中一个非常重要的模块


url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&_=1638361138568'
# 1. 发送请求
response = requests.get(url, verify=False)
# <Response [200]>: 响应体Response  200: 状态码 发送请求成功
# 2. 获取数据
json_data = response.json()['data']
# 3. 解析数据
# json_data 什么类型?
json_data = json.loads(json_data)
china_data = json_data['areaTree'][0]['children'] # 列表
data_set = []
for i in china_data:
    data_dict = {}
    # 地区名称
    data_dict['province'] = i['name']
    # 新增确认
    data_dict['nowConfirm'] = i['total']['nowConfirm']
    # 死亡人数
    data_dict['dead'] = i['total']['dead']
    # 治愈人数
    data_dict['heal'] = i['total']['heal']
    # 死亡率
    data_dict['deadRate'] = i['total']['deadRate']
    # 治愈率
    data_dict['healRate'] = i['total']['healRate']
    data_set.append(data_dict)

df = pd.DataFrame(data_set)
df.to_csv('data.csv')
2.数据可视化
pie = (
    Pie()
    .add(
        "",
        [list(i) for i in zip(df2['province'].values.tolist(),df2['nowConfirm'].values.tolist())],
        radius = ["10%","30%"]
    )
    .set_global_opts(
            legend_opts=opts.LegendOpts(orient="vertical", pos_top="70%", pos_left="70%"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
pie.render_notebook()

在这里插入图片描述

line = (
    Line()
    .add_xaxis(list(df['province'].values))
    .add_yaxis("治愈率", df['healRate'].values.tolist())
    .add_yaxis("死亡率", df['deadRate'].values.tolist())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="死亡率与治愈率"),

    )
)
line.render_notebook()

在这里插入图片描述

bar = (
    Bar()
    .add_xaxis(list(df['province'].values)[:6])
    .add_yaxis("死亡", df['dead'].values.tolist()[:6])
    .add_yaxis("治愈", df['heal'].values.tolist()[:6])
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各地区确诊人数与死亡人数情况"),
        datazoom_opts=[opts.DataZoomOpts()],
        )
)
bar.render_notebook()

在这里插入图片描述

china_map = (
    Map()
    .add("现有确诊", [list(i) for i in zip(df['province'].values.tolist(),df['nowConfirm'].values.tolist())], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="各地区确诊人数"),
        visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
    )
)
china_map.render_notebook()

在这里插入图片描述
大功告成
喜欢记得三连哦!
点赞、关注、转发!

视频教程:

获取疫情数据视频教程:←点击左边蓝色文字就可以跳转观看了

Python基础入门教程推荐:←点击左边蓝色文字就可以跳转观看了

Python爬虫案例教程推荐:←点击左边蓝色文字就可以跳转观看了

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值