根据每个国家的数据绘制世界地图(以全球疫情为例)

在此以全球疫情为例介绍pyecharts库的使用。

其核心为构建一个字典,字典的键值对就对应国家名以及对应国家的数据。

import numpy as np
import pandas as pd

df = pd.read_csv('time_series_covid19_confirmed_global.csv')
data = df.iloc[:, 4:]
country = df.iloc[:,1]
last_data = data.iloc[:, -1]

map_version = {}  #定义空字典
for i in range(len(country)):
    name = country[i]   #国家名
    confirm = last_data[i]   #该国家疫情人数
    if name in map_version:
        map_version[name] = int(confirm)  + map_version[name]
    else:
        map_version[name] = int(confirm)  #将国家和人数以键值对的形式传入字典

element = list(map_version.items())

在得到对应的字典之后,通过一下固定格式将element传送给画图函数。

from pyecharts.charts import Map,Geo
from pyecharts import options

map = Map(options.InitOpts(bg_color="#87CEFA",page_title='世界疫情分布')).\
    add(series_name="世界疫情分布图",  #名称
        data_pair=element,   #传入数据
        is_map_symbol_show=False,  #不显示标记
        maptype='world',   #地图类型
        )
#设置全局配置项
map.set_global_opts(visualmap_opts=options.VisualMapOpts(max_=500000000,is_piecewise=True,pieces=[
                 {"min": 50000000},
                 {"min": 10000000, "max": 49999999},
                 {"min": 1000000, "max": 9999999},
                 {"min": 100000, "max": 999999},
                 {"min": 10000, "max": 99999},
                 {"max": 9999},]))
#设置系列配置项
map.set_series_opts(label_opts=options.LabelOpts(is_show=False))  #不显示国家名
map.render('map.html')  #命名并保存
print(country)

在当前文件下会得到map.html文件,双击用浏览器打开即可查看,还可以使用鼠标查看每个国家的具体数据。

从地图上来看,几乎所有的国家都遭到了疫情的影响,其中美国的确诊人数最多,巴西、俄罗斯和印度,确诊人数次之,也较严重。少数几个国家由于没有统计数据,所以是空白。 

猜你喜欢

转载自blog.csdn.net/qq_40608730/article/details/123009593