pyecharts绘制地图
python 绘制地图
环境准备
1.1 安装必备绘画库
亲身体验,最新版的pyecharts使用不来,通过百度寻得的教学推荐版本 0.1.9.4 可以绘制完成世界地图,国家地图以及市级地图,但是不能绘制县区级的地图,故此实验之下选择 0.5.10 版本,可绘制县区级地图。
安装pyecharts
pip install pyecharts==0.5.10
安装国家、城市、县区的集成库
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
1.2 绘制图形
from pyecharts import Map
1.2.1 绘制世界地图
attr与value是非必传数据,若是不传值,在地图中会是白色的色块,整个地图呈现的是轮廓,传值的情况下,被传值的国家或城市会被上色,更加鲜明的呈现出特征
# 地图数据
attr = ["China", "Canada", "Brazil", "Russia", "United States", \'Libya\', \'Australia\']
value = [40, 30, 50, 60, 70, 80, 90]
map0 = Map("世界地图示例", width=1600, height=800)
map0.add("世界地图", attr, value, maptype="world", is_visualmap=True, visual_text_color=\'#000\')
map0.render(path="./data/世界地图.html")
1.2.2 绘制中国地图
# 省和直辖市
province_distribution = {\'河南\': 45.23, \'北京\': 37.56, \'河北\': 21, \'辽宁\': 12, \'江西\': 6, \'上海\': 20, \'安徽\': 10, \'江苏\': 16, \'湖南\': 9,
\'浙江\': 13, \'海南\': 2, \'广东\': 22, \'湖北\': 8, \'黑龙江\': 11, \'澳门\': 1, \'陕西\': 11, \'四川\': 7, \'内蒙古\': 3, \'重庆\': 3,
\'云南\': 6, \'贵州\': 2, \'吉林\': 3, \'山西\': 12, \'山东\': 11, \'福建\': 4, \'青海\': 1, \'天津\': 1}
provice = list(province_distribution.keys())
values = list(province_distribution.values())
# maptype=\'china\' 只显示全国直辖市和省级
# 数据只能是省名和直辖市的名称
map = Map("中国地图", \'中国地图\', width=1600, height=800)
map.add("", provice, values, visual_range=[0, 50], maptype=\'china\', is_visualmap=True, visual_text_color=\'#000\')
# map.show_config()
map.render(path="./data/中国地图.html")
1.2.3 绘制河南地图
# 城市 -- 指定省的城市 xx市
city = [\'郑州市\', \'安阳市\', \'洛阳市\', \'濮阳市\', \'南阳市\', \'开封市\', \'商丘市\', \'信阳市\', \'新乡市\', \'许昌市\', \'三门峡市\', \'平顶山市\']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1, 7.21, 9.01, 8.28]
# 数据是省内所属城市名
map2 = Map("河南地图", \'河南\', width=1600, height=800)
map2.add(\'河南\', city, values2, visual_range=[1, 10], maptype=\'河南\', is_visualmap=True, visual_text_color=\'#000\')
# map2.show_config()
map2.render(path="./data/河南地图.html")
1.2.4 绘制信阳市地图
# 区县 -- 具体城市内的区县 xx县
quxian = [\'潢川县\', \'息县\', \'浉河区\', \'平桥区\', \'光山县\', \'商城县\', \'罗山县\']
values3 = [3, 5, 7, 8, 2, 4, 1]
# 信阳地图 数据为信阳市下的区县
map3 = Map("信阳地图", \'信阳\', width=1600, height=800)
map3.add("信阳", quxian, values3, visual_range=[1, 10], maptype=\'信阳\', is_visualmap=True, visual_text_color=\'#000\')
map3.render(path="./data/信阳地图.html")
1.3 所用函数参数介绍
Map的第一个参数是 绘制地图的标题 ,第二个参数是 标题下的说明文字 ,width与height分别是绘制地图所在的区域范围的宽和高
map.add()第一个参数是 绘制地图的标识,当同一区域绘制了不同的地图,可以通过标识展示自己想要的地图 ;
第二个参数是 当前绘制目标的所属城市或县区名称集合,必须是列表形式 ; 第三个参数是 所属城市或县区对应的数值数据,同样必须是列表形式,且必须与第二个参数的长度相同 ; visual_range的参数可以不设置,不设置的情况下根据所传数据的值域进行自适应,同时绘制多个地图时,若所传参数不一致,取最大值 ;maptype是决定绘制的地图是什么,例如:世界地图是‘world’,中国地图是‘china’,河南地图是‘河南’等等 ;is_visualmap是显示上一参数的标识,为true才可以显示地图中的色块展示,为false不显示 ;visual_text_color是标识中的文字颜色。
map.render()传入参数path是绘制地图完成后写入的html文件,后续可以通过文件展示绘制的地图