转载自:(18条消息) 2022见证中国崛起从Python绘制中国地图开始:使用pyecharts最新版本绘制中国地图实例详解,个性化地图定制及常用参数解析_挣扎的蓝藻的博客-CSDN博客
Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解
先给大家看下效果图哈。
首先需要安装 pyecharts 库,直接 pip install pyecharts 就好了。新版本的话不需要单独安装地图,如果是 0.5 版本是需要单独安装的,目前演示的是当前最新版本 1.9.1地图数据如下:因为是中国地图,所以对标的省份,我设置了 2 组,里面的数据是随机生成的。
1234567891011121314151617181920212223242526272829303132333435363738from pyecharts import options as optsfrom pyecharts.charts import Mapimport randomultraman = [['四川', 0],['台湾', 0],['新疆', 0],['江西', 0],['河南', 0],['辽宁', 0],['西藏', 0]]
monster = [['广东', 0],['北京', 0],['上海', 0],['江西', 0],['湖南', 0],['浙江', 0],['江苏', 0]]
def data_filling(array):''' 作用:给数组数据填充随机数'''for i in array:for j in i:i[1] = random.randint(1,1000)#print(i)
data_filling(ultraman)data_filling(monster)
首先演示下添加一组数据,运行后会生成一个 html 文件,打开后就可以查看生成的地图了。
1234567891011121314151617def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="怪兽", data_pair=monster, maptype="china", ).set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
.render("中国地图.html"))
然后演示下添加两组数据,只要再加个 add() 函数就好了,非常方便。
12345678910111213141516171819202122def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china", ).add(series_name="怪兽", data_pair=monster, maptype="china", ).set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
.render("中国地图.html"))
给大家加了块完整源码,直接运行即可哈。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162from pyecharts import options as optsfrom pyecharts.charts import Mapimport randomultraman = [['四川', 0],['台湾', 0],['新疆', 0],['江西', 0],['河南', 0],['辽宁', 0],['西藏', 0]]
monster = [['广东', 0],['北京', 0],['上海', 0],['江西', 0],['湖南', 0],['浙江', 0],['江苏', 0]]
def data_filling(array):''' 作用:给数组数据填充随机数'''for i in array:
i[1] = random.randint(1,1000)print(i)
data_filling(ultraman)data_filling(monster)
def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china", ).add(series_name="怪兽", data_pair=monster, maptype="china", )
.set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
.render("中国地图.html"))
create_china_map()
默认是选中的,添加 is_selected=False 参数可以设置默认不显示。
1234567891011121314151617181920212223242526def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china",is_selected=False).add(series_name="怪兽", data_pair=monster, maptype="china", )
.set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
.render("中国地图.html"))
create_china_map()
可以看到默认只显示了怪兽的数据。
视觉映射配置项 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) 可以设置为地图颜色类型分段显示,max_ 的值对应的是数据的范围,参数 is_piecewise=True 表示为分段显示。
12345678910111213141516171819202122232425262728def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china",is_selected=True).add(series_name="怪兽", data_pair=monster, maptype="china", ).set_global_opts(
title_opts=opts.TitleOpts(title="中国地图"),
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True))
.render("中国地图.html"))
分段显示效果图:
12345678910111213141516171819202122232425262728def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china",is_selected=True).add(series_name="怪兽", data_pair=monster, maptype="china", ).set_global_opts(
title_opts=opts.TitleOpts(title="中国地图"),
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False))
.render("中国地图.html"))
这是参数为 is_piecewise=False 的标准显示。
参数 is_roam=False 会控制不可进行鼠标缩放和平移。
12345678910111213141516171819202122232425262728293031def create_china_map():''' 作用:生成中国地图'''(Map().add(series_name="奥特曼", data_pair=ultraman, maptype="china",is_selected=True,
is_roam=False).add(series_name="怪兽", data_pair=monster, maptype="china", ).set_global_opts(
title_opts=opts.TitleOpts(title="中国地图"),
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False))
.render("中国地图.html"))
参数启用时鼠标滚轮可以放大缩小图像。
鼠标可以左右拖动使地图平移。优先级