• 大小: 12.39MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-29
  • 语言: Python
  • 标签: python  matplotlib  

资源简介

python绘制新型冠状病毒疫情地图与疫情曲线。
读取腾讯的接口获得数据,再使用matplotlib库进行绘制。

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-

import time  # 时间库
import json  # 处理json数据专用的库
import requests  # 可以访问网址获得数据的一个库,爬虫中应用较为广泛
from datetime import datetime  # 时间库
import numpy as np  # python数字库,强化python对数学相关内容的处理能力
import matplotlib  # python的matlib库
import matplotlib.figure  # matplotlib的图形库
from matplotlib.font_manager import FontProperties  # matplotlib的字体库
from matplotlib.backends.backend_agg import FigureCanvasAgg  # matplotlib的可视化终端库
from matplotlib.patches import Polygon  # matplotlib图形库中的“多边形”
from matplotlib.collections import PatchCollection  # matplotlib收集库,用于集成检验每个小区域
from mpl_toolkits.basemap import basemap  # 地图库
import matplotlib.pyplot as plt  # matplotlib的绘图库
import matplotlib.dates as mdates  # matplotlib的日期库

plt.rcParams[‘font.sans-serif‘] = [‘FangSong‘]  # 设置默认字体
plt.rcParams[‘axes.unicode_minus‘] = False


def catch_daily():
    “““抓取每日确诊和死亡数据“““

    # 抓取数据的网址
    url = ‘https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts&callback=&_=%d‘ % int(
        time.time()*1000)
    # 获取数据并进行格式化处理
    data = json.loads(requests.get(url=url).json()[‘data‘])
    # 数据排序
    data.sort(key=lambda x: x[‘date‘])

    # 初始化5个列表,用于存放相关数据
    date_list = list()  # 日期
    confirm_list = list()  # 确诊
    suspect_list = list()  # 疑似
    dead_list = list()  # 死亡
    heal_list = list()  # 治愈

    # 遍历获得的数
    for item in data:
        # 获取日期
        month day = item[‘date‘].split(‘.‘)

        # 把相关数据放入数组中
        date_list.append(datetime.strptime(‘2020-%s-%s‘ %
                                           (month day) ‘%Y-%m-%d‘))
        confirm_list.append(int(item[‘confirm‘]))
        suspect_list.append(int(item[‘suspect‘]))
        dead_list.append(int(item[‘dead‘]))
        heal_list.append(int(item[‘heal‘]))

    return date_list confirm_list suspect_list dead_list heal_list


def catch_distribution():
    “““抓取行政区域确诊分布数据“““

    data = {‘西藏‘: 0}
    url = ‘https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_area_counts&callback=&_=%d‘ % int(
        time.time()*1000)
    for item in json.loads(requests.get(url=url).json()[‘data‘]):
        if item[‘area‘] not in data:
            data.update({item[‘area‘]: 0})
        data[item[‘area‘]] += int(item[‘confirm‘])

    return data


def plot_daily():
    “““绘制每日确诊和死亡数据“““

    date_list confirm_list suspect_list dead_list heal_list = catch_daily()  # 获取数据

    # 初始化图表的基本信息
    plt.figure(‘2019-nCoV疫情统计图表‘ facecolor=‘#f4f4f4‘ figsize=(10 8))
    plt.title(‘2019-nCoV疫情曲线‘ fontsize=20)

    plt.plot(date_list confirm_list label=‘确诊‘)
    plt.plot(date_list suspect_list label=‘疑似‘)
    plt.plot(date_list dead_list label=‘死亡‘)
    plt.plot(date_list heal_list label=‘治愈‘)

    plt.gca().xaxis.set_major_formatter(mdates.DateFormatter(‘%m-%d‘))  # 格式化时间轴标注
    plt.gcf().autofmt_xdate()  # 优化标注(自动倾斜)
    plt.grid(linestyle=‘:‘)  # 显示网格
    plt.legend(loc=‘best‘)  # 显示图例
    plt.savefig(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6567  2020-01-28 13:15  nCoV.py
     目录           0  2020-01-28 10:06  res\
     目录           0  2018-11-04 17:41  res\shapefiles\
     文件         169  2018-11-04 17:41  res\shapefiles\README.md
     文件      162995  2018-11-04 17:41  res\shapefiles\china.dbf
     文件         145  2018-11-04 17:41  res\shapefiles\china.prj
     文件     3523112  2018-11-04 17:41  res\shapefiles\china.shp
     文件       11036  2018-11-04 17:41  res\shapefiles\china.shx
     文件         386  2018-11-04 17:41  res\shapefiles\china_country.dbf
     文件         145  2018-11-04 17:41  res\shapefiles\china_country.prj
     文件      967240  2018-11-04 17:41  res\shapefiles\china_country.shp
     文件         108  2018-11-04 17:41  res\shapefiles\china_country.shx
     文件         768  2018-11-04 17:41  res\shapefiles\china_nine_dotted_line.dbf
     文件         145  2018-11-04 17:41  res\shapefiles\china_nine_dotted_line.prj
     文件        9156  2018-11-04 17:41  res\shapefiles\china_nine_dotted_line.shp
     文件         180  2018-11-04 17:41  res\shapefiles\china_nine_dotted_line.shx
     文件        1702  2018-11-04 17:41  res\shapefiles\plot-sample.ncl
     文件       19859  2018-11-04 17:41  res\shapefiles\shapefile_utils.ncl
     文件         386  2018-11-04 17:41  res\shapefiles\simplied_china_country.dbf
     文件         145  2018-11-04 17:41  res\shapefiles\simplied_china_country.prj
     文件        9492  2018-11-04 17:41  res\shapefiles\simplied_china_country.shp
     文件         108  2018-11-04 17:41  res\shapefiles\simplied_china_country.shx
     文件    10512288  2008-04-14 20:00  res\simsun.ttc
     文件    10499104  2012-05-14 11:30  res\simsun.ttf

评论

共有 条评论