这里是以其中5个省份的城市为例进行演示
画图前准备
在画图之前先导入相关的库
1
2
3
|
from pyecharts.charts import map , timeline
from pyecharts import options
from pyecharts import options as opts
|
数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 1. 准数据
### 山东省
sd_c = [ '青岛市' , '济南市' , '潍坊市' , '临沂市' , '烟台市' , '聊城市' , '济宁市' , '淄博市' , '菏泽市' , '德州市' , '泰安市' , '滨州市' , '威海市' , '东营市' , '枣庄市' , '日照市' ]
sd_d = [ 1278 , 1163 , 834 , 704 , 673 , 632 , 622 , 587 , 586 , 570 , 434 , 401 , 303 , 289 , 216 , 201 ]
### 广东省
gd_c = [ '广州市' , '东莞市' , '佛山市' , '汕头市' , '惠州市' , '中山市' , '揭阳市' , '珠海市' , '江门市' , '潮州市' , '湛江市' , '清远市' , '汕尾市' , '肇庆市' , '茂名市' , '梅州市' , '韶关市' , '河源市' , '阳江市' , '云浮市' ]
gd_d = [ 1925 , 1235 , 936 , 788 , 548 , 464 , 420 , 356 , 354 , 311 , 274 , 246 , 237 , 220 , 205 , 157 , 127 , 118 , 108 , 82 ]
### 四川省
sc_c = [ '绵阳市' , '南充市' , '广元市' , '德阳市' , '宜宾市' , '达州市' , '泸州市' , '广安市' , '乐山市' , '遂宁市' , '眉山市' , '巴中市' , '凉山彝族自治州' , '内江市' , '自贡市' , '资阳市' , '雅安市' , '攀枝花市' , '阿坝藏族羌族自治州' , '甘孜藏族自治州' ]
sc_d = [ 944 , 741 , 639 , 555 , 493 , 463 , 359 , 351 , 340 , 337 , 300 , 282 , 239 , 214 , 190 , 174 , 157 , 141 , 123 , 104 ]
### 浙江省
zj_c = [ '杭州市' , '温州市' , '宁波市' , '金华市' , '嘉兴市' , '台州市' , '绍兴市' , '湖州市' , '丽水市' , '衢州市' , '舟山市' ]
zj_d = [ 1183 , 792 , 765 , 582 , 438 , 381 , 360 , 288 , 197 , 103 , 66 ]
### 贵州省
gz_c = [ '贵阳市' , '遵义市' , '毕节市' , '黔南布依族苗族自治州' , '黔西南布依族苗族自治州' , '六盘水市' , '安顺市' , '黔东南苗族侗族自治州' , '铜仁市' ]
gz_d = [ 1605 , 887 , 454 , 414 , 414 , 381 , 338 , 291 , 196 ]
|
这里以5个省份为例,统计5个省份的各市(不完全统计)以及各市的火锅店数量
绘图
这里绘图主要是用到pyecharts库的map类和timeline这两个类
其中map是绘制城市地图,timeline是绘制轮播图(整合城市图)
先看一下官方案例
1
2
3
4
5
|
map1 = (
map (init_opts = opts.initopts(width = "700px" ,height = "300px" ,theme = "blue" ))
.add(' ', [(i,j) for i,j in zip(sd_c,sd_d)], ' 山东')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 4000 ))
)
|
其init_opts=opts.initopts(width="700px",height="300px",theme="blue")这部分代码是自定义的,不需要的可以去掉(这里只是修改了默认从参数)
add中:add('', [(i,j) for i,j in zip(sd_c,sd_d)], '山东'),其中sd_c是省份对应的市,sd_d是每一个市对应的火锅店数,后面的“山东”是省份,sd_c的市是和和山东对应的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# 2. 绘制山东省地图:格式一
map1 = (
map (init_opts = opts.initopts(width = "700px" ,height = "300px" ,theme = "blue" ))
.add(' ', [(i,j) for i,j in zip(sd_c,sd_d)], ' 山东')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 4000 ))
)
# 3. 绘制广东省地图:格式二
map2 = (
map ()
.add(' ', [(i,j) for i,j in zip(gd_c,gd_d)], ' 广东')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 400 ,is_piecewise = true))
)
# 4. 绘制四川省地图:格式二
map3 = (
map ()
.add(' ', [(i,j) for i,j in zip(sc_c,sc_d)], ' 四川')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 400 ,is_piecewise = true))
)
# 5. 绘制浙江省地图:格式二
map4 = (
map ()
.add(' ', [(i,j) for i,j in zip(zj_c,zj_d)], ' 浙江')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 400 ,is_piecewise = true))
)
# 6. 绘制贵州省地图:格式二
map5 = (
map ()
.add(' ', [(i,j) for i,j in zip(gz_c,gz_d)], ' 贵州')
.set_global_opts(visualmap_opts = opts.visualmapopts(max_ = 400 ,is_piecewise = true))
)
|
绘制轮播图
将上面的5个城市地图(map1~map5)整合到一起,并且设置间隔为3秒进行轮播
1
2
3
4
5
6
7
8
9
10
11
|
# 4. 创建组合类对象
timeline = timeline(init_opts = opts.initopts(width = '720px' , height = '350px' ))
# 5. 在组合对象中添加需要组合的图表对象
timeline.add(chart = map1, time_point = "山东省地图" )
timeline.add(chart = map2, time_point = "广东省地图" )
timeline.add(chart = map3, time_point = "四川省地图" )
timeline.add(chart = map4, time_point = "浙江省地图" )
timeline.add(chart = map5, time_point = "贵州省地图" )
### 设置轮播时间
timeline.add_schema(is_auto_play = true, play_interval = 3000 )
|
最后保存成html
1
2
|
# 6. 渲染数据
timeline.render( "城市地图轮播图.html" )
|
最终的效果
小结
以上就是城市轮播图的全部讲解,代码量不多,完整源码:
https://gitee.com/lyc96/carousel-map/tree/master
以上就是用python画城市轮播地图的详细内容,更多关于python 画轮播地图的资料请关注服务器之家其它相关文章!
原文链接:https://mp.weixin.qq.com/s/RL8whxnR-6p58ojaPLri4A