用pyecharts做2019-nCoV疫情数据可视化
用爬虫爬取数据,再用matplotlib作图,固然强大但不够简单。这里用akshare的API接口获取数据,用我钟爱的pyecharts(version=1.6.2,当前最新)做一次简单的可视化。
"""
coder : xh
time : 2020/2/8 10:05
_*_ coding:utf-8 _*_
"""
#导入库
import pandas as pd
import akshare as ak
import matplotlib.pyplot as plt
import datetime
from pyecharts.charts import Map
from pyecharts import options as opts
#from pyecharts.render import make_snapshot
#from snapshot_selenium import snapshot
#用API接口获取数据(丁香园)
inf_dxy = ak.epidemic_dxy(indicator='全国')
#简单处理为pyecharts中Map需要的数据格式
province = list(inf_dxy['地区简称'])
folk = list(inf_dxy['确诊'])
list1 = [[province[i],folk[i]] for i in range(len(province))]
#开始画图
c = Map(init_opts=opts.InitOpts(width="800px", height="660px"))
c.add("疫情实时地图", list1,'china',is_map_symbol_show=False)
c.set_global_opts( #设置全局配置项
title_opts=opts.TitleOpts(title="疫情实时地图(" + str(datetime.date.today()) + ")"
),
visualmap_opts=opts.VisualMapOpts(max_=10000,
is_piecewise=True,
pieces=[
{'min':1,'max':9,'label':'10人以下','color':'#FFE6BE'},
{'min':10,'max':99,'label':'10-99人','color':'#FFB769'},
{'min':100,'max':999,'label':'100-999人','color':'#FF8F66'},
{'min':1000,'max':9999,'label':'1000-9999人','color':'#ED514E'},
{'min':10000,'max':99999,'label':'10000人以上','color':'#CA0D11'},]),#设置自定义分段
legend_opts=opts.LegendOpts(is_show=False), #是否显示图例
)
c.render('current_map.html')# 输出html格式
#make_snapshot(snapshot, c.render(), "current_map.png")#输出png格式,需导入被注释的包并配置 browser driver。如:用Chrome浏览器并下载ChromeDriver放在bin下。
结果如下: