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文件,后续可以通过文件展示绘制的地图