首先,我们需要进行环境的配置:python版本需要3.6.x ,pyecharts版本1.x
使用pip自动安装最新版本(这里的版本是1.7.1)
记得下载配套资源!!!
pip install pyecharts
pyecharts1.x之后,pyecharts 将不再自带地图 js 文件。用户需要自行安装对应的地图文件包。
地图文件被分成了三个 Python 包,分别为:
全球国家地图: echarts-countries-pypkg
中国省级地图: echarts-china-provinces-pypkg
中国市级地图: echarts-china-cities-pypkg
可以直接用pip安装:
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pyecharts里面包含很多的图表类型,类型如下:
---------Bar(柱状图/条形图)
---------Bar3D(3D 柱状图)
---------Boxplot(箱形图)
---------EffectScatter(带有涟漪特效动画的散点图)
---------Funnel(漏斗图)
---------Gauge(仪表盘)
---------Geo(地理坐标系)
---------GeoLines(地理坐标系线图)
---------Graph(关系图)
---------HeatMap(热力图)
---------Kline/Candlestick(K线图)
---------Line(折线/面积图)
---------Line3D(3D 折线图)
---------Liquid(水球图)
---------Map(地图)
---------Parallel(平行坐标系)
---------Pie(饼图)
---------Polar(极坐标系)
---------Radar(雷达图)
---------Sankey(桑基图)
---------Scatter(散点图)
---------Scatter3D(3D 散点图)
---------Surface3D(3D 曲面图)
---------ThemeRiver(主题河流图)
---------Tree(树图)
---------TreeMap(矩形树图)
---------WordCloud(词云图)
将本文章配套资源下载,里面有源代码,存储的json数据,中英文映射文件!!!!!!QAQ~
第一步:导入需要的各个模块
from pyecharts.charts import Map
from pyecharts import options as opts
import json
from namemap import nameMap
第二部:读取数据,创建列表,将数据存储在列表里面(该json文件,配套资源里面有)
filename = 'Real-time global epidemic data2020_4_15.json'
with open(filename) as f:#打开文件
epidemic_data = json.load(f)#读取文件,以json格式存储到epidemic_data里面
provinceName = []
confirmedCount =[]
countrys_names = []
for epidemic_dict in epidemic_data:
provinceName.append(epidemic_dict['provinceName'])
confirmedCount.append(epidemic_dict['confirmedCount'])
第三步:进行中英文国名互换(在网上抓取的数据,国家名一般为中文,需要转化为英文,用到配套资源里面的namemap.py文件)
nameMap_new={}
for key,val in nameMap.items():#将nameMap列表里面键值互换
nameMap_new[val]=key
for i in range(len(provinceName)):#遍历列表,将对应英文名存储到countrys_names列表里
countrys_name = nameMap_new[provinceName[i]]
countrys_names.append(countrys_name)
第四步:设置地图的基本数据(宽,高,背景颜色,页面主题,没用到的国家的背景颜色)
map = Map( init_opts=opts.InitOpts(width="1900px", height="900px", bg_color="#ADD8E6",
page_title="4.15全球疫情确诊人数",theme="white"))
第五步:添加数据(设置图标“确诊人数”,导入数据对,设置每个国家的首都坐标点不可见,定义地图类型为”world“,设置国家名字不可见)
map.add("确诊人数",[list(z) for z in zip(countrys_names, confirmedCount)],is_map_symbol_show=False,
maptype="world",label_opts=opts.LabelOpts(is_show=False),
itemstyle_opts=opts.ItemStyleOpts(color="rgb(49,60,72)"))
第六步:进行全局设置(设置地图标题,设置图标不可见,设置视觉映射配置(其中详细参数方法在我的文章https://blog.csdn.net/zhu_rui/article/details/105655379)(有什么不明白的可以关注、私信我),导出为html文件(直接子啊浏览器打开))
map.set_global_opts(title_opts = opts.TitleOpts(title='4.15 全球疫情确诊人数'),
legend_opts=opts.LegendOpts(is_show=False),
visualmap_opts = opts.VisualMapOpts(max_=100000))
map.render('world_map.html')