Práctica diaria: Rastreo de datos de epidemias domésticas de Python y dibujo de mapas

[Artículos de la serie] Mapas de
Python : uso de pyecharts para dibujar mapas mundiales, mapas chinos, mapas provinciales y mapas municipales

representaciones

Primero echemos un vistazo a las representaciones:
inserte la descripción de la imagen aquí
puede ver que los datos de epidemia confirmados acumulados en Jilin solo y la consulta son consistentes.
inserte la descripción de la imagen aquí

Mapeo de epidemias acumuladas confirmadas

① Captura de datos de vez en cuando

Consulte los siguientes artículos para obtener datos relevantes sobre la epidemia de neumonía:

[Artículos relacionados]
Práctica diaria: Rastreador de Python rastreando el nuevo ejemplo nacional de datos de epidemia de neumonía corona, utilizando la biblioteca beautifulsoup4 para lograr

Visualización de representación de la provincia: representación de la
inserte la descripción de la imagen aquí
ciudad:
inserte la descripción de la imagen aquí

② Obtener datos epidémicos provinciales

Aquí están los datos de la matriz epidémica provincial extraídos de la cadena json .

import json

def get_provinces(json_content):
    """
     xiaolanzao, 2022.04.27
    【作用】
     获取省份疫情数据
    【参数】
     json_content : json字符串
    【返回】
     省份累计确诊数组数据
    """
    # 将字符串转化为字典
    json_data = json.loads(json_content)
    
    data = []
    
    # 省份数据展示
    for i in json_data:
        # 省份名称处理,和地图对应
        province_name = i["provinceName"]
        if(len(province_name)>1):
            if(province_name[-1] == "省"):
                province_name = province_name[:-1]
            if(province_name[-1] == "市"):
                province_name = province_name[:-1]
        if(len(province_name)>3):
            if(province_name[-3:] == "自治区"):
                province_name = province_name[:-3]
        if(len(province_name)>3):
            if(province_name[-3:] == "维吾尔"):
                province_name = province_name[:-3]
        if(len(province_name)>2):
            if(province_name[-2:] == "壮族"):
                province_name = province_name[:-2]
            if(province_name[-2:] == "回族"):
                province_name = province_name[:-2]
        
        data.append((province_name, i["confirmedCount"]))
         
    print("全国各省份疫情数据如下:")
    for i in data:
        print(i)
        
    return data


data = get_provinces(json_content)

Nota: Aquí se procesa el nombre original y solo se puede identificar el nombre de la provincia y el mapa.

# 省份名称处理,和地图对应
province_name = i["provinceName"]
if(len(province_name)>1):
    if(province_name[-1] == "省"):
        province_name = province_name[:-1]
    if(province_name[-1] == "市"):
        province_name = province_name[:-1]
if(len(province_name)>3):
    if(province_name[-3:] == "自治区"):
        province_name = province_name[:-3]
if(len(province_name)>3):
    if(province_name[-3:] == "维吾尔"):
        province_name = province_name[:-3]
if(len(province_name)>2):
    if(province_name[-2:] == "壮族"):
        province_name = province_name[:-2]
    if(province_name[-2:] == "回族"):
        province_name = province_name[:-2]

Esto es antes
inserte la descripción de la imagen aquí
del procesamiento: Esto es después del procesamiento:
inserte la descripción de la imagen aquí

③ Ajustes de datos de color de segmentación de elementos de configuración visual

En primer lugar, debe configurar los datos que se muestran en un segmento de elementos de configuración visual y, a continuación, se mostrará el tipo de presentación según el segmento en el que se encuentran los datos.

pieces = [
    {
    
    'min': 10000, 'color': '#540d0d'},
    {
    
    'max': 9999, 'min': 1000, 'color': '#9c1414'},
    {
    
    'max': 999, 'min': 500, 'color': '#d92727'},
    {
    
    'max': 499, 'min': 100, 'color': '#ed3232'},
    {
    
    'max': 99, 'min': 10, 'color': '#f27777'},
    {
    
    'max': 9, 'min': 1, 'color': '#f7adad'},
    {
    
    'max': 0, 'color': '#f7e4e4'},
]
# 全局配置项
.set_global_opts(
    # 设置标题
    title_opts=opts.TitleOpts(title="中国疫情地图"),
    # 设置视觉配置项分段显示
    visualmap_opts=opts.VisualMapOpts(
        pieces=pieces,
        is_piecewise=True,
        is_show=True
    )
)

Aquí está la representación:
inserte la descripción de la imagen aquí

④ Mapeo de epidemias acumuladas confirmadas

Aquí, se genera un mapa basado en los datos.

# -*- coding:utf-8 -*-
# 2022-4-1
# 作者:小蓝枣
# 疫情地图

# 需要引用的库
from pyecharts import options as opts
from pyecharts.charts import Map

pieces = [
    {
    
    'min': 10000, 'color': '#540d0d'},
    {
    
    'max': 9999, 'min': 1000, 'color': '#9c1414'},
    {
    
    'max': 999, 'min': 500, 'color': '#d92727'},
    {
    
    'max': 499, 'min': 100, 'color': '#ed3232'},
    {
    
    'max': 99, 'min': 10, 'color': '#f27777'},
    {
    
    'max': 9, 'min': 1, 'color': '#f7adad'},
    {
    
    'max': 0, 'color': '#f7e4e4'},
]

def create_china_map():
    ''' 
     作用:生成中国疫情地图
    '''
    (
        Map()
        .add(
            series_name="累计确诊", 
            data_pair=data, 
            maptype="china", 
            # 是否默认选中,默认为True
            is_selected=True,
            # 是否启用鼠标滚轮缩放和拖动平移,默认为True
            is_roam=True,
            # 是否显示图形标记,默认为True
            is_map_symbol_show=False
        )
        # 系列配置项
        # 关闭标签名称显示
        .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
        # 全局配置项
        .set_global_opts(
            # 设置标题
            title_opts=opts.TitleOpts(title="中国疫情地图"),
            # 设置视觉配置项分段显示
            visualmap_opts=opts.VisualMapOpts(
                pieces=pieces,
                is_piecewise=True,
                is_show=True
            )
        )
        # 生成本地html文件
        .render("中国疫情地图.html")
    )
    
create_china_map()

El diagrama de efectos es el siguiente:
inserte la descripción de la imagen aquí

Mapeo de epidemias confirmadas existentes

① Obtener datos epidémicos provinciales

La diferencia entre aquí y lo anterior se data.append((province_name, i["confirmedCount"]))reemplaza pordata.append((province_name, i["currentConfirmedCount"]))

import json

def get_provinces(json_content):
    """
     xiaolanzao, 2022.04.27
    【作用】
     获取省份疫情数据
    【参数】
     json_content : json字符串
    【返回】
     省份现存确诊数组数据
    """
    # 将字符串转化为字典
    json_data = json.loads(json_content)
    
    data = []
    
    # 省份数据展示
    for i in json_data:
        # 省份名称处理,和地图对应
        province_name = i["provinceName"]
        if(len(province_name)>1):
            if(province_name[-1] == "省"):
                province_name = province_name[:-1]
            if(province_name[-1] == "市"):
                province_name = province_name[:-1]
        if(len(province_name)>3):
            if(province_name[-3:] == "自治区"):
                province_name = province_name[:-3]
        if(len(province_name)>3):
            if(province_name[-3:] == "维吾尔"):
                province_name = province_name[:-3]
        if(len(province_name)>2):
            if(province_name[-2:] == "壮族"):
                province_name = province_name[:-2]
            if(province_name[-2:] == "回族"):
                province_name = province_name[:-2]
        
        data.append((province_name, i["currentConfirmedCount"]))
         
    print("全国各省份疫情数据如下:")
    for i in data:
        print(i)
        
    return data


data = get_provinces(json_content)

② Mapeo de epidemias confirmadas existentes

Aquí acabo de cambiar el nombre del conjunto de datos, de series_name="累计确诊"cambiado aseries_name="现存确诊"

# -*- coding:utf-8 -*-
# 2022-4-1
# 作者:小蓝枣
# 疫情地图

# 需要引用的库
from pyecharts import options as opts
from pyecharts.charts import Map

pieces = [
    {
    
    'min': 10000, 'color': '#540d0d'},
    {
    
    'max': 9999, 'min': 1000, 'color': '#9c1414'},
    {
    
    'max': 999, 'min': 500, 'color': '#d92727'},
    {
    
    'max': 499, 'min': 100, 'color': '#ed3232'},
    {
    
    'max': 99, 'min': 10, 'color': '#f27777'},
    {
    
    'max': 9, 'min': 1, 'color': '#f7adad'},
    {
    
    'max': 0, 'color': '#f7e4e4'},
]

def create_china_map():
    ''' 
     作用:生成中国疫情地图
    '''
    (
        Map()
        .add(
            series_name="现存确诊", 
            data_pair=data, 
            maptype="china", 
            # 是否默认选中,默认为True
            is_selected=True,
            # 是否启用鼠标滚轮缩放和拖动平移,默认为True
            is_roam=True,
            # 是否显示图形标记,默认为True
            is_map_symbol_show=False
        )
        # 系列配置项
        # 关闭标签名称显示
        .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
        # 全局配置项
        .set_global_opts(
            # 设置标题
            title_opts=opts.TitleOpts(title="中国疫情地图"),
            # 设置视觉配置项分段显示
            visualmap_opts=opts.VisualMapOpts(
                pieces=pieces,
                is_piecewise=True,
                is_show=True
            )
        )
        # 生成本地html文件
        .render("中国疫情地图.html")
    )
    
create_china_map()

Las representaciones son las siguientes:
inserte la descripción de la imagen aquí
si te gusta, dale me gusta ❤!

Supongo que te gusta

Origin blog.csdn.net/qq_38161040/article/details/123116983
Recomendado
Clasificación