Python pyecharts绘制中国地图:参数配置与可视化详解
本文详细介绍如何使用Python pyecharts库绘制中国地图。涵盖从环境安装、数据准备到添加多层数据的核心步骤,并深入解析is_selected、visualmap_opts、is_roam、label_opts及itemstyle_opts等关键参数的配置方法,帮助开发者实现自定义颜色、交互及标签显示的高级地图效果。
实例演示
首先展示最终的地图效果。

1.pyecharts 1.9.1 版本安装与数据准备
首先需安装 pyecharts 库,执行命令 pip install pyecharts 即可完成安装。
若使用新版本,无需单独安装地图数据;仅 0.5 旧版本需单独安装。本文演示基于当前最新版本 1.9.1。
地图所需数据如下:
由于绘制中国地图,涉及省份对标,此处设置两组数据,数值为随机生成。
# -*- coding:utf-8 -*-
# 2022-1-14
# 作者:小蓝枣
# pyecharts地图
# 需要引用的库
from pyecharts import options as opts
from pyecharts.charts import Map
import random
# 设置奥特曼所存在的相关省份,并设置初始数量为0
ultraman = [
['四川', 0],
['台湾', 0],
['新疆', 0],
['江西', 0],
['河南', 0],
['辽宁', 0],
['西藏', 0]
]
# 设置怪兽存在的相关省份,并设置初始数量为0
monster = [
['广东', 0],
['北京', 0],
['上海', 0],
['江西', 0],
['湖南', 0],
['浙江', 0],
['江苏', 0]
]
def data_filling(array):
'''
作用:给数组数据填充随机数
'''
for i in array:
# 随机生成1到1000的随机数
i[1] = random.randint(1,1000)
print(i)
data_filling(ultraman)
data_filling(monster)2.添加数据项,默认中国地图显示
首先演示添加一组数据,运行后生成 html 文件,打开即可查看生成的地图。

def create_china_map():
'''
作用:生成中国地图
'''
(
Map()
.add(
series_name="怪兽",
data_pair=monster,
maptype="china",
)
# 设置标题
.set_global_opts(title_opts=opts.TitleOpts(title="中国地图"))
# 生成本地html文件
.render("中国地图.html")
)

接着演示添加两组数据,仅需额外调用 add() 函数,操作十分便捷。
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="中国地图"))
# 生成本地html文件
.render("中国地图.html")
)

常用配置项及参数解析
1.设置是否默认选中
默认状态为选中,添加 is_selected=False 参数可设置默认不显示该图层。
def 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="中国地图"))
# 生成本地html文件
.render("中国地图.html")
)
create_china_map()此时默认仅显示怪兽数据图层。

2.设置地图颜色类型是否分段显示
通过视觉映射配置项 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) 可设置地图颜色分段显示,max_ 对应数据范围,参数 is_piecewise=True 表示启用分段显示。
def 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)
)
# 生成本地html文件
.render("中国地图.html")
)
分段显示效果如下:

def 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)
)
# 生成本地html文件
.render("中国地图.html")
)
这是参数为 is_piecewise=False 的标准连续显示模式。

3.缩放平移配置
参数 is_roam=False 会禁用鼠标缩放和平移功能。
def create_china_map():
'''
作用:生成中国地图
'''
(
Map()
.add(
series_name="奥特曼",
data_pair=ultraman,
maptype="china",
# 是否默认选中,默认为True
is_selected=True,
# 是否启用鼠标滚轮缩放和拖动平移,默认为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)
)
# 生成本地html文件
.render("中国地图.html")
)启用该参数后,鼠标滚轮可放大缩小图像。

鼠标可左右拖动实现地图平移。
优先级声明:若 a 数据设置为 False,b 数据设置为 True,即使不选中 a 数据,仍可对 b 数据进行缩放和平移拖动。

4.启用和关闭图形标记
参数 is_map_symbol_show=False 可关闭图形标记,关闭后将不显示点位。
def create_china_map():
'''
作用:生成中国地图
'''
(
Map()
.add(
series_name="奥特曼",
data_pair=ultraman,
maptype="china",
# 是否默认选中,默认为True
is_selected=True,
# 是否启用鼠标滚轮缩放和拖动平移,默认为True
is_roam=True,
# 是否显示图形标记,默认为True
is_map_symbol_show=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)
)
# 生成本地html文件
.render("中国地图.html")
)
此时奥特曼相关区域的点位已消失。

5.关闭标签名称显示
系列配置项中,参数 label_opts=opts.LabelOpts(is_show=False) 可关闭标签名称显示。
def create_china_map():
'''
作用:生成中国地图
'''
(
Map()
.add(
series_name="奥特曼",
data_pair=ultraman,
maptype="china",
# 是否默认选中,默认为True
is_selected=True,
# 是否启用鼠标滚轮缩放和拖动平移,默认为True
is_roam=True,
# 是否显示图形标记,默认为True
is_map_symbol_show=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),
)
# 系列配置项
# 关闭标签名称显示
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 生成本地html文件
.render("中国地图.html")
)
此时省份名称不再显示。

6.颜色设置:标签颜色、区域颜色、边框颜色
系列配置项中,标签添加 color="blue" 参数可将标签颜色设为蓝色。
图元样式配置中,areaColor 为区域颜色,borderColor 为边框颜色。
其中 normal 为常规模式,emphasis 为强调样式,即鼠标悬停区域时的显示效果。
# 图元样式配置
itemstyle_opts={
# 常规显示
"normal": {"areaColor": "white", "borderColor": "red"},
# 强调颜色
"emphasis": {"areaColor": "rgba(0,0,0,1)"}
}
当鼠标悬停新疆时,显示为设置的黑色,透明度为 1。

def create_china_map():
'''
作用:生成中国地图
'''
(
Map()
.add(
series_name="奥特曼",
data_pair=ultraman,
maptype="china",
# 是否默认选中,默认为True
is_selected=True,
# 是否启用鼠标滚轮缩放和拖动平移,默认为True
is_roam=True,
# 是否显示图形标记,默认为True
is_map_symbol_show=False,
# 图元样式配置
itemstyle_opts={
# 常规显示
"normal": {"areaColor": "white", "borderColor": "red"},
# 强调颜色
"emphasis": {"areaColor": "rgba(0,0,0,1)"}
}
)
.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)
)
# 系列配置项
.set_series_opts(
# 标签名称显示,默认为True
label_opts=opts.LabelOpts(is_show=True, color="blue")
)
# 生成本地html文件
.render("中国地图.html")
)
以上为Python pyecharts实现绘制中国地图的实例详解,更多关于Python pyecharts绘制中国地图的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









