最近2020年的各地GDP总值陆续公布,这里演示一下使用pyecharts
制作交互式网页地图的方法。
首先要引入pyecharts
中的options
和Map
模块。
from pyecharts import options as opts
from pyecharts.charts import Map
pyecharts
的使用方式比较特别,初看起来比较费劲,但也是有规律可循的。
绘制地图通常采用对象名=(Map().函数名())
的方法,其中的函数名可以不受级别限制进行链式叠加,形如下面的例子:
c = (
Map()
.add()
.set_global_opts()
.render()
)
.add()
函数的三个参数分别是标签名
、数据
、地图名
。标签名即使要显示的标签名称,数据格式比较特别,形如
[["北京",12],["上海",34],["广州",56]]
通常使用下面的方法生成这种格式:
x=['北京','上海','广州']
y=['12','34','56']
[list(z) for z in zip(x, y)]
地图名即地图所表达的行政区范围,如全国地图为'china'
,广东省地图为'广东'
,即可匹配到相应的地图。
.set_global_opts()
函数可以设置地图的外观,在本例程中,利用此函数设置了标题和表尺。
.set_global_opts(
title_opts=opts.TitleOpts(title="2020年GDP地图"),
visualmap_opts=opts.VisualMapOpts(max_=100000,min_=2000)
)
.render()
函数即生成html文件,参数为文件名。
完整代码如下:
from pyecharts import options as opts
from pyecharts.charts import Map
region=['北京', '上海', '江苏', '福建', '浙江', '广东', '天津', '重庆', '湖北', '山东', '内蒙古', '陕西', '安徽', '湖南', '海南', '四川', '辽宁', '河南', '宁夏', '江西', '新疆', '西藏', '云南', '青海', '贵州', '河北', '山西', '吉林', '广西', '黑龙江', '甘肃']
value=['36103', '38701', '102719', '43904', '64613', '110761', '14084', '25003', '43443', '73129', '17360', '26182', '38681', '41781', '5532', '48599', '25115', '54997', '3921', '25692', '13798', '1903', '24522', '3006', '17827', '36207', '17652', '12311', '22157', '13699', '9017']
c = (
Map()
.add("GDP总值(亿元)",[list(z) for z in zip(region, value)], "china")
.set_global_opts(
title_opts=opts.TitleOpts(title="2020年GDP地图"), visualmap_opts=opts.VisualMapOpts(max_=100000,min_=2000)
)
.render("GDP2020.html")
)