Python pyecharts绘制中国地图:参数配置与可视化详解

小林子
小林子
发布时间:2026-10-15| 4人浏览过
原创

本文详细介绍如何使用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绘制中国地图的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。