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

一、先看一下效果

获取的全国疫情数据:
Python获取疫情数据, 并做数据可视化展示_第1张图片
可视化后的效果:
Python获取疫情数据, 并做数据可视化展示_第2张图片
Python获取疫情数据, 并做数据可视化展示_第3张图片
Python获取疫情数据, 并做数据可视化展示_第4张图片
Python获取疫情数据, 并做数据可视化展示_第5张图片

二、环境以及模块

环境

  • 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: 状态码 发送请求成功
# 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()

Python获取疫情数据, 并做数据可视化展示_第6张图片

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

Python获取疫情数据, 并做数据可视化展示_第7张图片

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

Python获取疫情数据, 并做数据可视化展示_第8张图片

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获取疫情数据, 并做数据可视化展示_第9张图片
大功告成
喜欢记得三连哦!
点赞、关注、转发!

视频教程:

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

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

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

你可能感兴趣的:(爬虫学习,python,数据挖掘,爬虫)