Python pyecharts实现绘制中国地图的实例详解

目录
  • 实例演示
    • 1.pyecharts 1.9.1 版本安装与数据准备
    • 2.添加数据项,默认中国地图显示
  • 常用配置项及参数解析
    • 1.设置是否默认选中
    • 2.设置地图颜色类型是否分段显示
    • 3.缩放平移配置
    • 4.启用和关闭图形标记
    • 5.关闭标签名称显示
    • 6.颜色设置:标签颜色、区域颜色、边框颜色

实例演示

先给大家看下效果图哈。

1.pyecharts 1.9.1 版本安装与数据准备

首先需要安装 pyecharts 库,直接 pip install pyecharts 就好了。

新版本的话不需要单独安装地图,如果是 0.5 版本是需要单独安装的,目前演示的是当前最新版本 1.9.1

地图数据如下:

因为是中国地图,所以对标的省份,我设置了 2 组,里面的数据是随机生成的。

# -*- 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 数据,也可以进行缩放和平移拖动。

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="bule" 参数可设置标签颜色为蓝色。

图元样式配置的 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绘制中国地图的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实现Pyecharts实现动态地图(Map、Geo)

    一些经常画图的开发人员大概都用过echart,不过小白用Python比较多,学习了python下的Pyecharts,发现这个包真的很强大.下面是小白对动态地图的实践案例: 假如有这样一组数据,全国每个城市的酒店数(虚拟),那么如何在地图上展示呢? 1.Python需要安装Pycharts 当安装完成后需要添加地图包: 安装pyecharts后还需要根据需要安装城市.省份等地图包,下面是对包的整理,大家可以根据需要下载. pip install pyecharts pip install ech

  • 利用pyecharts实现地图可视化的例子

    pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图. 今天我们就用pyecharts和jupyter notebook实现地图数据的可视化. pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件.如用户需要用到地图图表,可自行安装对应的地图文件包. 下面介绍

  • python使用pyecharts库画地图数据可视化的实现

    python使用pyecharts库画地图数据可视化导库中国地图代码结果世界地图代码结果省级地图代码结果地级市地图代码结果 导库 from pyecharts import options as opts from pyecharts.charts import Map 中国地图 代码 data = [('湖北', 9074),('浙江', 661),('广东', 632),('河南', 493),('湖南', 463), ('安徽', 340),('江西', 333),('重庆', 275),

  • python用pyecharts实现地图数据可视化

    有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较.但直方图在视觉上并不能很好突出地区间的差异,因此考虑地理可视化,通过地图上位置(地理位置)和颜色(颜色深浅代表数值差异)两个元素加以体现.在本文案例中,基于第三方库pyecharts,对中国各省2010-2019年的GDP进行绘制. 我们先来看看最终效果: 关于绘图数据 基于时间和截面两个维度,可把数据分为截面数据.时间序列及面板数据.在本文案例中,某一年各省的GDP属于截面数据,多年各省的GDP属于面板数据.因此,

  • Python pyecharts实现绘制中国地图的实例详解

    目录 实例演示 1.pyecharts 1.9.1 版本安装与数据准备 2.添加数据项,默认中国地图显示 常用配置项及参数解析 1.设置是否默认选中 2.设置地图颜色类型是否分段显示 3.缩放平移配置 4.启用和关闭图形标记 5.关闭标签名称显示 6.颜色设置:标签颜色.区域颜色.边框颜色 实例演示 先给大家看下效果图哈. 1.pyecharts 1.9.1 版本安装与数据准备 首先需要安装 pyecharts 库,直接 pip install pyecharts 就好了. 新版本的话不需要单独

  • Python+folium绘制精美地图的示例详解

    目录 1.准备工作 2.关于folium.Map() 3.内建地图底图样式 4.多种第三方地图底图样式 4.1.高德地图 4.2.智图GeoQ 4.3.腾讯地图 4.4.天地图 5.补充 1. 准备工作 有朋友可能没用过folium,它其实就是python的一个专业绘制地图的第三方库,所以在使用之前需要先安装它. pip install folium 在安装完成之后,我们可以在jupyterlab进行演示如下: import folium m = folium.Map() m 默认 对于上面的输

  • Node 切片拼接及地图导出实例详解

    目录 概述 实现效果 实现 1. 初始化工程 2. 编写工具类 概述 本文讲述在node中,使用canvas实现根据出图范围和级别,拼接瓦片并叠加geojson矢量数据,并导出成图片. 实现效果 实现 1. 初始化工程 通过命令npm init -y初始化工程并添加对应的依赖,最终的package.json文件如下: { "name": "map", "version": "1.0.0", "description&

  • python字符串string的内置方法实例详解

    下面给大家分享python 字符串string的内置方法,具体内容详情如下所示: #__author: "Pizer Wang" #__date: 2018/1/28 a = "Let's go" print(a) print("-------------------") a = 'Let\'s go' print(a) print("-------------------") print("hello"

  • python随机生成库faker库api实例详解

    废话不多说,直接上代码! # -*- coding: utf-8 -*- # @Author : FELIX # @Date : 2018/6/30 9:49 from faker import Factory # zh_CN 表示中国大陆版 fake = Factory().create('zh_CN') # 产生随机手机号 print(fake.phone_number()) # 产生随机姓名 print(fake.name()) # 产生随机地址 print(fake.address())

  • python里使用正则表达式的组嵌套实例详解

    python里使用正则表达式的组嵌套实例详解 由于组本身是一个完整的正则表达式,所以可以将组嵌套在其他组中,以构建更复杂的表达式.下面的例子,就是进行组嵌套的例子: #python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # import re def test_patterns(text, patterns): """Given source text and a list of pa

  • python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil

  • python文件特定行插入和替换实例详解

    python文件特定行插入和替换实例详解 python提供了read,write,但和很多语言类似似乎没有提供insert.当然真要提供的话,肯定是可以实现的,但可能引入insert会带来很多其他问题,比如在插入过程中crash掉可能会导致后面的内容没来得及写回. 不过用fileinput可以简单实现在特定行插入的需求: Python代码 import os import fileinput def file_insert(fname,linenos=[],strings=[]): ""

  • Python字符串和字典相关操作的实例详解

    Python字符串和字典相关操作的实例详解 字符串操作: 字符串的 % 格式化操作: str = "Hello,%s.%s enough for ya ?" values = ('world','hot') print str % values 输出结果: Hello,world.hot enough for ya ? 模板字符串: #coding=utf-8 from string import Template ## 单个变量替换 s1 = Template('$x, glorio

  • Python基础教程之浅拷贝和深拷贝实例详解

    Python基础教程之浅拷贝和深拷贝实例详解            网上关于Python的深拷贝和浅拷贝的文章很多,这里对三种拷贝进行比较并附实例,大家可以参考下 一般的复制 #encoding:utf-8 #定义一个嵌套集合 lista=[1,2,3,[4,5,6,[7,8,9]]] listb=lista #分别打印出 lista和listb的地址值 print id(lista) #4511103096 print id(listb) #4511103096 #修改lista中的内容,li

随机推荐