在此以全球疫情为例介绍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文件,双击用浏览器打开即可查看,还可以使用鼠标查看每个国家的具体数据。
从地图上来看,几乎所有的国家都遭到了疫情的影响,其中美国的确诊人数最多,巴西、俄罗斯和印度,确诊人数次之,也较严重。少数几个国家由于没有统计数据,所以是空白。