import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
data=pd.read_excel('疫情数据(1).xlsx')
data
data生成的数据如下表,只截出一部分,省份列的数据只有“湖北”、“广东”这样的简称,没有带上“省”、“市”等
province = list(data['省份'])
#将省份名称补全
for i in range(0,len(province)):
if(province[i] in {'北京','天津','上海','重庆'}):
province[i] += '市'
elif(province[i] in {'西藏','内蒙古'}):
province[i] += '自治区'
elif(province[i] in {'香港','澳门'}):
province[i] += '特别行政区'
elif(province[i] in {'宁夏'}):
province[i] += '回族自治区'
elif(province[i] in {'新疆'}):
province[i] += '维吾尔自治区'
elif(province[i] in {'广西'}):
province[i] += '壮族自治区'
else:
province[i] += '省'
#计算每个省份的人数
province_data = [list(z) for z in zip(province,data['人数'])]
#province_data数据显示 [['湖北省', 34617], ['广东省', 366], ['山东省', 332], ['浙江省', 188], ['四川省', 184], ['湖南省', 170], ['黑龙江省', 166], ['重庆市', 148], ['北京市', 132], ['江西省', 123], ['安徽省', 116], ['江苏省', 108], ['河南省', 81], ['广西壮族自治区', 74], ['香港特别行政区', 62], ['福建省', 53], ['上海市', 47], ['陕西省', 37], ['贵州省', 32], ['河北省', 31], ['台湾省', 29], ['内蒙古自治区', 26], ['辽宁省', 25], ['天津市', 24], ['山西省', 20], ['吉林省', 17], ['海南省', 16], ['云南省', 15], ['新疆维吾尔自治区', 11], ['甘肃省', 7], ['宁夏回族自治区', 4], ['澳门特别行政区', 2], ['青海省', 0], ['西藏自治区', 0]]
#画图
map = (
Map(init_opts=opts.InitOpts(width='800px',height='600px'))
.add(
series_name='现存确诊',
data_pair=province_data,
maptype='china',
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=True))
.set_global_opts(
title_opts=opts.TitleOpts(title='现存确诊'),
visualmap_opts=opts.VisualMapOpts(max_=35000,is_piecewise=True,
pieces=[
{"min":10000,"label":'>10000人',"color":"#6666cc"},
{"min":1000,"max":10000,"label":'1001-10000人',"color":"#9999FF"},
{"min":500,"max":999,"label":'500-1000人',"color":"#CCCCFF"},
{"min":100,"max":499,"label":'100-499人',"color":"#FF9999"},
{"min":10,"max":99,"label":'10-99人',"color":"#FFCCCC"},
{"min":1,"max":9,"label":'0-9人',"color":"CCFCCCC"},
{"min":0,"max":0,"label":'0人',"color":"#FFFFFF"}
]))
.render("疫情地图.html")
)
结果截图
生成结果:疫情地图T1.html