Rastreo de datos de epidemias domésticas de Python y dibujo de mapas
- representaciones
- Mapeo de epidemias acumuladas confirmadas
- ① Captura de datos de vez en cuando
- ② Obtener datos epidémicos provinciales
- ③ Ajustes de datos de color de segmentación de elementos de configuración visual
- ④ Mapeo de epidemias acumuladas confirmadas
- Mapeo de epidemias confirmadas existentes
- ① Obtener datos epidémicos provinciales
- ② Mapeo de epidemias confirmadas existentes
[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:
puede ver que los datos de epidemia confirmados acumulados en Jilin solo y la consulta son consistentes.
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
ciudad:
② 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
del procesamiento: Esto es después del procesamiento:
③ 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:
④ 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:
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:
si te gusta, dale me gusta ❤!