Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图

pyecharts从入门到精通-地图专题GEO-世界地图和中国城市地图

作者头像
用户2225445
发布于 2023-10-16 09:51:26
发布于 2023-10-16 09:51:26
87202
代码可运行
举报
文章被收录于专栏:IT从业者张某某IT从业者张某某
运行总次数:2
代码可运行

参考

官方文档:https://pyecharts.org/#/zh-cn/quickstart Python使用Pyecharts画Geo地图,如何显示具体地点名称 pyecharts世界地图用:国家中英文对照表.xlsx Map中的地理坐标问题

安装与查看pyecharts

安装pyecharts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pyecharts==2.0.3
# Successfully installed prettytable-3.7.0 pyecharts-2.0.3 simplejson-3.19.1

查看版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyecharts
print(pyecharts.__version__) 
# 2.0.3

地图实现-Geo

pyecharts的地图实现包括:

Geo:地理坐标系 Map:地图 BMap:百度地图

完成Geo地理坐标系实现。

0、导入相关模块 1、首先是实例化对象:可传入图表宽度、名称、背景颜色 2、add_schema() :传入要显示的区域名称、是否显示下辖区的名称、图表颜色、边界线颜色 3、add(): 传入图例名称、数据(二级列表)、图类型(ChartType.EFFECT_SCATTER动态散点 图,ChartType.HEATMAP热力图,scatter, effectScatter, heatmap, lines) 4、set_series_opts() :是否显示每个区域的数据大小 5、set_global_opts() : 设置图标标题 6、render_notebook() : 在notebook中渲染显示图表

案例演示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts.globals import ChartType

c = (
    Geo()
    .add_schema(maptype="广东")
    .add(
        "geo",
        [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
        type_=ChartType.HEATMAP,
    )
    .add(
        "geo",
        [list(z) for z in zip(Faker.provinces, Faker.values())],
        type_=ChartType.EFFECT_SCATTER,
    )
    .add(
        "",
        [("汕头市", 55), ("汕尾市", 66), ("广州市", 77), ("惠州市", 88)],
        type_=ChartType.EFFECT_SCATTER,
        color="white",
    )
    .add(
        "geo",
        [("汕头市", "汕尾市"), ("广州市", "惠州市"), ("汕头市", "广州市"), ("广州市", "肇庆市")],
        type_=ChartType.LINES,
        effect_opts=opts.EffectOpts(
            symbol=SymbolType.ARROW, symbol_size=6, color="blue"
        ),
        linestyle_opts=opts.LineStyleOpts(curve=0.2),
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-广东地图")
    )

)
c.render_notebook()

拓展-pyecharts中GEO源码

class pyecharts.charts.Geo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Geo(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()

    # 是否忽略不存在的坐标,默认值为 False,即不忽略
    is_ignore_nonexistent_coord: bool = False
)

func pyecharts.charts.Geo.add_schema

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def add_schema(
    # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
    maptype: str = "china",

    # 是否开启鼠标缩放和平移漫游。
    is_roam: bool = True,

    # 当前视角的缩放比例。默认为 1
    zoom: Optional[Numeric] = None,

    # 当前视角的中心点,用经纬度表示。例如:center: [115.97, 29.71]
    center: Optional[Sequence] = None,

    # 参数用于 scale 地图的长宽比。
    aspect_scale: types.Numeric = 0.75,

    # 二维数组,定义定位的左上角以及右下角分别所对应的经纬度。
    bounding_coords: types.Optional[types.Sequence[types.Numeric]] = None,

    # 最小的缩放值。
    min_scale_limit: types.Optional[types.Numeric] = None,

    # 最大的缩放值。
    max_scale_limit: types.Optional[types.Numeric] = None,

    # 默认是 'name',针对 GeoJSON 要素的自定义属性名称,作为主键用于关联数据点和 GeoJSON 地理要素。
    name_property: str = "name",

    # 选中模式,表示是否支持多个选中,默认关闭,支持布尔值和字符串。
    # 字符串取值可选'single'表示单选,或者'multiple'表示多选。
    selected_mode: types.Union[bool, str] = False,

    # pyecharts 暂时没有提供 left/top/right/bottom 的配置
    # layoutCenter 和 layoutSize 提供了除了 left/right/top/bottom/width/height 之外的布局手段。
    # 在使用 left/right/top/bottom/width/height 的时候
    # 可能很难在保持地图高宽比的情况下把地图放在某个盒形区域的正中间,并且保证不超出盒形的范围。
    # 此时可以通过 layoutCenter 属性定义地图中心在屏幕中的位置,layoutSize 定义地图的大小。
    # 如下示例
    # layoutCenter: ['30%', '30%'],
    # // 如果宽高比大于 1 则宽度为 100,如果小于 1 则高度为 100,保证了不超过 100x100 的区域
    # layoutSize: 100
    layout_center: types.Optional[types.Sequence[str]] = None,

    # 地图的大小,见 layoutCenter。支持相对于屏幕宽高的百分比或者绝对的像素大小。
    layout_size: types.Union[str, types.Numeric] = None,

    # # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict, None] = None,

    # 地图区域的多边形 图形样式。
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] =None,

    # 高亮状态下的多边形样式
    emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict,None] = None,

    # 高亮状态下的标签样式。
    emphasis_label_opts: Union[opts.LabelOpts, dict, None] =None,

    # 在地图中对特定的区域配置样式。具体配置参考 `charts_options.GeoRegionsOpts`
    regions_opts: types.Union[types.Sequence[types.GeoRegions], types.Sequence[dict]] = None,
):

func pyecharts.charts.Geo.add

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def add(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,

    # 数据项 (坐标点名称,坐标点值)
    data_pair: Sequence,

    # Geo 图类型,有 scatter, effectScatter, heatmap, lines 4 种,建议使用
    # from pyecharts.globals import GeoType
    # GeoType.GeoType.EFFECT_SCATTER,GeoType.HEATMAP,GeoType.LINES
    type_: str = "scatter",

    # 是否选中图例
    is_selected: bool = True,

    # 标记图形形状
    symbol: Optional[str] = None,

    # 标记的大小
    symbol_size: Numeric = 12,

    # 每个点的大小,在地理坐标系(coordinateSystem: 'geo')上有效。
    blur_size: types.Numeric = 20,

    # 每个点模糊的大小,在地理坐标系(coordinateSystem: 'geo')上有效。
    point_size: types.Numeric = 20,

    # 系列 label 颜色
    color: Optional[str] = None,

    # 是否是多段线,在画 lines 图情况下
    is_polyline: bool = False,

    # 是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启
    is_large: bool = False,

    # 特效尾迹的长度。取从 01 的值,数值越大尾迹越长。默认值 0.2
    trail_length: Numeric = 0.2,

    # 开启绘制优化的阈值。
    large_threshold: Numeric = 2000,

    # 配置该系列每一帧渲染的图形数
    progressive: types.Numeric = 400,

    # 启用渐进式渲染的图形数量阈值,在单个系列的图形数量超过该阈值时启用渐进式渲染。
    progressive_threshold: types.Numeric = 3000,

    # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 涟漪特效配置项,参考 `series_options.EffectOpts`
    effect_opts: Union[opts.EffectOpts, dict] = opts.EffectOpts(),

    # 线样式配置项,参考 `series_options.LineStyleOpts`
    linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),

    # 提示框组件配置项,参考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

    # 图元样式配置项,参考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

    # 这个配置相对非常复杂(参照地址: https://www.echartsjs.com/zh/option.html#series-custom.renderItem)
    render_item: types.JsCode = None,

    # 这个配置相对非常复杂(参照地址: https://www.echartsjs.com/zh/option.html#series-custom.encode)
    encode: types.Union[types.JsCode, dict] = None,
)

func pyecharts.charts.Geo.add_coordinate 新增一个坐标点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def add_coordinate(
    # 坐标地点名称
    name: str,

    # 经度
    longitude: Numeric,

    # 纬度
    latitude: Numeric,
)

func pyecharts.charts.Geo.add_coordinate_json 以 JOSN 文件格式新增多个坐标点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def add_coordinate_json(
    # json 文件格式的坐标数据
    # 格式如下
    # {
    #   "阿城": [126.58, 45.32],
    #   "阿克苏": [80.19, 41.09]
    # }
  ],
    json_file: str
)

func pyecharts.charts.Geo.get_coordinate 查询指定地点的坐标

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def get_coordinate(
    # 地点名称
    name: str
) -> Sequence

Geo 图的坐标引用自 pyecharts.datasets.COORDINATES,COORDINATES 是一个支持模糊匹配的字典类。可设置匹配的阈值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyecharts.datasets import COORDINATES
# cutoff 为匹配阈值,阈值越高相似性越高,1 为完全相同。默认为 0.6
COORDINATES.cutoff = 0.75

func pyecharts.options.GeoRegionsOpts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class GeoRegionsOpts(
    # 地图区域的名称,例如 '广东''浙江'name: Optional[str] = None,

    # 该区域是否选中。
    is_selected: bool = False,

    # 该区域的多边形样式设置。
    itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

    # 图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。
    label_opts: Union[LabelOpts, dict, None] = None,

    # 高亮状态的样式设置。
    emphasis_itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

    # 高亮状态的标签设置。
    emphasis_label_opts: Union[LabelOpts, dict, None] = None,

    # 选中状态的样式设置。
    select_itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

    # 选中状态的标签设置。
    select_label_opts: Union[LabelOpts, dict, None] = None,

    # 淡出状态的样式设置。
    blur_itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,

    # 淡出状态的标签设置。
    blur_label_opts: Union[LabelOpts, dict, None] = None,

    # 本 region 中特定的 tooltip 设定。
    tooltip_opts: Union[TooltipOpts, dict, None] = None,

    # 图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。
    is_silent: bool = False,
)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
pyecharts从入门到精通-地图专题BMap-世界地图和中国城市地图
官方文档:https://pyecharts.org/#/zh-cn/quickstart Bmap - Hiking_trail_in_hangzhou
用户2225445
2023/10/16
7060
pyecharts从入门到精通-地图专题BMap-世界地图和中国城市地图
pyecharts从入门到精通-地图专题Map-世界地图和中国城市地图
官方文档:https://pyecharts.org/#/zh-cn/quickstart Python使用Pyecharts画Geo地图,如何显示具体地点名称 pyecharts世界地图用:国家中英文对照表.xlsx Map中的地理坐标问题
用户2225445
2023/10/16
9470
pyecharts从入门到精通-地图专题Map-世界地图和中国城市地图
就是这么简单,Pyecharts绘制可视化地图!
Pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。
小F
2021/04/26
2.7K0
就是这么简单,Pyecharts绘制可视化地图!
Python Geo 地图
参考:# https://github.com/pyecharts/pyecharts/blob/master/example/geo_example.py
Java架构师必看
2021/08/09
8090
使用pyecharts进行数据可视化
安装 pip install pyecharts 直接使用该命令安装的版本为最新版本为1.5。语法与之前版本大不一样,因此本文仅针对1.5及之后版本说明。若想使用之前版本请使用命令pip install pyecharts == 0.1.5.19 注:建议在jupyter notebook中coding,方便debug。
刘早起
2020/04/22
1.3K0
干货 | 使用pyecharts绘制交互式动态地图
说到pyecharts,相信很多人不会陌生,一个优秀的python可视化包。 pyecharts是中国人开发的,相比较matplotlib、seaborn等老牌可视化库,pyecharts是十分符合国内用户习惯的,尤其在地理空间图表方面。 本文是想试探一下pyecharts在绘制地理图表方面的功底如何,那就开始吧!
派大星的数据屋
2022/04/02
1.3K0
干货 | 使用pyecharts绘制交互式动态地图
软件测试/人工智能|Python数据可视化神器pyecharts教程(一)
在很多时候,枯燥的数字并不能很直观的展示地域的差别,比如一个企业,想要分析产品在国内的销售情况,报表可能并不能最直接的展示差异,而一个结合地图的展示,就会直观得多,更便于大家去看到差距,更利于决策。
霍格沃兹测试开发Muller老师
2023/12/11
2490
Python 动态图表 pyecharts 使用
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
为为为什么
2023/03/16
6.8K0
Python 动态图表 pyecharts 使用
【Python】用pyecharts绘制我国人口分布和迁移地图
由于我国省份较多,把数据放在地图上展示会更加清晰,故本文用Python中的pyecharts库进行人口分布和迁移绘图展示。
阿黎逸阳
2021/03/10
4.3K0
【Python】用pyecharts绘制我国人口分布和迁移地图
这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
编辑 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 转载请联系授权(微信ID:Hc220066)
杰哥的IT之旅
2020/09/22
1.9K0
这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!
pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)
在上一篇文章中,链接如下:https://www.cnblogs.com/xiao987334176/p/13791061.html
py3study
2020/11/13
7.4K0
pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)
关于pyecharts可视化地图中国经济、人口等数据
pyechart也提供了一些树型图表和地理图表,树型图表又包括树图和矩型树图;地理图表MAP、GEO、BMAP等图表;其中树图意义不大,矩形树图难度在对json格式的处理上,把sql转为pandas再转为groupby分组再转为嵌套json;地理图表的geo图表主要是点状和热力图,适合定性分析,map是面状的,适合量化分析,bmap则和百度地图结合的更紧凑,学习难度较大。
python与大数据分析
2022/03/11
8650
关于pyecharts可视化地图中国经济、人口等数据
python pyecharts地理数据可视化 绘制地理图表
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
叶庭云
2020/09/17
10.4K1
【Python可视化】超详细Pyecharts 1.x教程,让你的图表动起来~
pyecharts 是一个用于生成 Echarts 图表的Python库。Echarts是百度开源的一个数据可视化 JS 库,可以生成一些非常酷炫的图表。
Awesome_Tang
2020/02/25
3K0
【Python可视化】超详细Pyecharts 1.x教程,让你的图表动起来~
Pyecharts入门
Apache ECharts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了;PyEcharts是Echarts的Python接口, Pyecharts = Python + Echarts
@小森
2024/06/28
2260
Pyecharts入门
数据可视化第二版-03部分-10章-地理特征
本系列博客为基于《数据可视化第二版》一书的教学资源博客。本文主要是第10章,地理特征可视化的案例相关。
用户2225445
2023/10/16
3040
数据可视化第二版-03部分-10章-地理特征
软件测试/人工智能|Python数据可视化神器pyecharts教程(三)
前面两篇文章,我们主要介绍了绘制基本的地图以及数据展示图,其实我们可以在地图上绘制更多类型的图形,本文就来继续介绍在地图的基础上进行我们的数据可视化工作。
霍格沃兹测试开发Muller老师
2023/12/11
2940
地图(八)利用python绘制散点地图
2. 基于pyecharts的涟漪散点地图(Effect Scatter Map)
HsuHeinrich
2025/04/01
1230
地图(八)利用python绘制散点地图
pyecharts-6-绘制地图
当绘制具体某个省份的地图时候,需要在地级市后面加上一个\color{red}{市},否则不能出图:
皮大大
2021/03/01
1.2K0
pyecharts-6-绘制地图
地图(六)利用python绘制连接地图
以上利用cartopy结合matplotlib快速绘制变形地图,也可通过pyecharts绘制漂亮的航班线。
HsuHeinrich
2025/03/18
1060
地图(六)利用python绘制连接地图
推荐阅读
相关推荐
pyecharts从入门到精通-地图专题BMap-世界地图和中国城市地图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档