首页 > 编程知识 正文

Python疫情数据统计图朋友圈火热

时间:2023-11-20 10:08:17 阅读:288146 作者:PCBJ

在当前新冠疫情时期,疫情数据的统计和展示显得尤为重要。Python疫情数据统计图成为了朋友圈的热门话题之一。本文将从多个方面对Python疫情数据统计图进行详细的阐述。

一、数据获取和预处理

数据的获取和预处理是数据可视化的重要前置步骤。首先,需要从可靠的数据源获取疫情数据。国家卫健委发布的每日疫情通报是比较权威和及时的数据源。可以使用requests库进行网络请求获取数据,并使用json库对数据进行解析。

import requests
import json
def get_data():
    url = "http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml"
    response = requests.get(url)
    response.encoding = "utf-8"
    html = response.text
    start = html.find("[")
    end = html.find("]", start) + 1
    data_str = html[start:end] #获取疫情数据的json字符串
    data = json.loads(data_str) #使用json库对数据进行解析
    return data

获取到原始数据之后,需要进行数据预处理。此处以统计湖北省的疫情数据为例,将所需要的数据提取出来,并根据日期进行排序。

def preprocess(data):
    #筛选出湖北省的数据并提取所需数据
    hubei_data = []
    for d in data:
        if d["provinceName"] == "湖北省":
            hubei_data.append({
                "date": d["pubDateStr"], #日期
                "confirm": d["confirmedCount"], #确诊人数
                "suspect": d["suspectedCount"], #疑似人数
                "cure": d["curedCount"], #治愈人数
                "dead": d["deadCount"], #死亡人数
            })
    #根据日期进行排序
    hubei_data = sorted(hubei_data, key=lambda x: x["date"])
    return hubei_data

二、绘制疫情数据曲线图

使用Matplotlib库可以方便的绘制疫情数据曲线图。以下代码展示了如何绘制湖北省的确诊人数、疑似人数、治愈人数和死亡人数的曲线图。

import matplotlib.pyplot as plt
def plot_curve(data):
    #获取各项数据
    dates = [d["date"] for d in data] #日期
    confirms = [d["confirm"] for d in data] #确诊人数
    suspects = [d["suspect"] for d in data] #疑似人数
    cures = [d["cure"] for d in data] #治愈人数
    deads = [d["dead"] for d in data] #死亡人数
    
    #绘制曲线图
    fig, ax = plt.subplots()
    ax.plot(dates, confirms, label="Confirmed")
    ax.plot(dates, suspects, label="Suspected")
    ax.plot(dates, cures, label="Cured")
    ax.plot(dates, deads, label="Deads")
    
    #设置坐标轴和图例
    ax.set_xlabel("Date")
    ax.set_ylabel("Number")
    ax.set_title("Hubei Province COVID-19 Statistics")
    ax.legend()
    plt.show()

三、绘制疫情地图

使用pyecharts库可以方便的绘制疫情地图。以下代码展示了如何绘制全国COVID-19疫情地图。

from pyecharts import options as opts
from pyecharts.charts import Map
def plot_map(data):
    #获取各省份数据
    provinces = {}
    for d in data:
        province = d["provinceName"]
        if province not in provinces:
            provinces[province] = {
                "confirm": d["confirmedCount"],
                "suspect": d["suspectedCount"],
                "cure": d["curedCount"],
                "dead": d["deadCount"],
            }
        else:
            provinces[province]["confirm"] += d["confirmedCount"]
            provinces[province]["suspect"] += d["suspectedCount"]
            provinces[province]["cure"] += d["curedCount"]
            provinces[province]["dead"] += d["deadCount"]

    #绘制地图
    m = Map()
    m.add("确诊人数", list(provinces.items()), "china")
    m.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    m.set_global_opts(
        title_opts=opts.TitleOpts(title="全国COVID-19疫情地图", subtitle="数据截至{}".format(d["pubDateStr"])),
        visualmap_opts=opts.VisualMapOpts(max_=2000),
    )
    m.render("covid-19-map.html")

四、结语

以上就是Python疫情数据统计图的相关内容。通过以上的代码示例,可以发现Python在数据处理和可视化方面具有可靠性和高效性,是一种非常实用的编程语言。希望对读者有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。