绘制炫酷的地图,不只是pyecharts!

本文全面解析地图可视化方法,涵盖pyecharts、Echarts、Office、Tableau等多种工具,比较其特点与适用场景,助您掌握地图数据展示技巧。
部署运行你感兴趣的模型镜像

导读:地图可视化是一种非常直观的数据分析结果展现形式,python有很多可视化库可以实现,pyecharts就是很多python爱好者喜爱的实现地图可视化方法之一。不可否认,pyecharts绘制的地图实现方便、图形美观而且支持交互,但在面对不同需求时,其实我们还有很多其他手段实现地图可视化。

01 序

本文主要是介绍了多种实现地图可视化的方法,并对其绘制方式进行简单介绍和对比。主要包括以下方式:

  • python之pyecharts

  • 百度之Echarts

  • office之Excel和ppt

  • 商业智能软件Tableau

02 pyecharts

python爱好者实现地图可视化时的首选库莫过于pyecharts,是一个用于生成 Echarts 图表的类库,实现起来非常简单,做出的图表也很美观。pyecharts 分为 v0.5 和 v1 两个大版本,v0.5 和 v1 间不兼容,v1 是一个全新的版本。本文案例使用版本1.6。

import pyecharts
pyecharts.__version__
#'1.6.0'

在制作地理地图方面,包括三个类,分别是map、Geo和Bmap,其中前两者是我们常用的地图可视化类,Bmap是百度地图的一个接口。

  • Map类生成地图

使用map类绘制地图支持世界、国家、省市和区县四级地图,使用前需独立安装。

from pyecharts.charts import Map
from pyecharts import options as opts
regions = ['上城区','下城区','拱墅区','滨江区','江干区','西湖区','萧山区','余杭区','临安市','富阳区','建德市','淳安县','桐庐县']
values = [94, 98, 76, 89, 65, 64, 56, 59, 45, 23, 22, 22, 21]#随便输入的数据
m = Map()
m.add("", zip(regions, values), maptype="杭州")
m.set_global_opts(title_opts=opts.TitleOpts(title="杭州各区块吸引力", pos_left = 'center' ),visualmap_opts=opts.VisualMapOpts(max_=100))
m.render(r'hz.html')

V0.5到V1.0以后版本的一个重要特性是支持类方法的链式调用:

m = (Map()
.add("", zip(regions, values), "杭州")
.set_global_opts(title_opts=opts.TitleOpts(title="杭州各区块吸引力", pos_left = 'center' ),visualmap_opts=opts.VisualMapOpts(max_=100))
.render(r'hz.html'))

Map类常用的方法是

##Map类常用方法,各方法里又支持大量参数进行个性化设置
add()
set_global_opts()
set_series_opts()
render()

pyecharts生成的杭州市地图

  • Geo类生成地图

与Map类似,Geo也可以通过设置maptype参数选择地图类型,默认是china,所支持方法与Map类似,具体可详细参考相关文档。

from pyecharts.charts import Geo
from pyecharts.globals import GeoType
from pyecharts import options as opts
regions = ['北京','上海','天津','重庆','广州','深圳','杭州','南京','成都','武汉','西安','郑州','厦门']
values = [94, 98, 76, 89, 65, 64, 56, 59, 45, 23, 22, 22, 21]#随便输入的数据
g = (Geo()
        .add_schema(maptype="china")
        .add("geo", zip(regions, values), type_ = GeoType.EFFECT_SCATTER)
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            visualmap_opts=opts.VisualMapOpts(is_piecewise=True),
            title_opts=opts.TitleOpts(title="Geo涟漪图"))
         .render('geo.html')
    )

03 Echarts

实际上,pyecharts之所以如此强大,是发挥了python胶水语言的特性得以引入Echarts。Echarts是百度的一个图表库,基于JavaScript语言实现,官网及其社区有大量开源的案例作品。站在巨人的肩膀上,本着不重复制造轮子的原则,即便不懂js语言,也可以通过简单的更改数据和基本设置来绘制精美的可视化地图。

基于现有案例,输入关键数据即可绘制可视化地图

自从pyecharts1.0版本后,其接口函数和0.5版本有很大区别。实际上,比对pyecharts源码会发现,其参数风格与echarts的js源码很像。从这个角度说,如果一个python爱好者对pyecharts库足够熟悉的话,那么反过来也会很容易上手百度Echarts图表。

Echarts地图均支持交互

注:上述两个可视化地图案例均选自Echarts的gallery社区

还有很多其他类似Echarts的可视化平台,如大众制图、图表秀等,均可在线制作大量图表,不过一般需要注册后方可使用,而Echarts则可直接使用。

04 Office

作为软件届的翘楚,微软不可能不占有一席之地;作为数据分析和可视化的通用基础工具,Excel和PPT也绝不会在地图可视化方面缺席。所以,如果说用python可视化库和百度Echarts在线制作地图可视化还不够接地气的话,那么office绝对称得上是家喻户晓、人尽可用。

在Excel界面中指定多列数据,其中一列是位置信息(如省份或者城市名),其余表示要可视化的数据,选择插入选项卡下插入三维地图功能,即可进入Excel制演示图界面。

Excel三维地图制作柱状图

然而,以北京各区划为例,Excel默认情况下还会识别出其他地址:例如北京市朝阳区还有吉林省长春市朝阳区,通州区也出现在江苏省南通市通州区。

Excel在识别地理位置方面还有些问题

在ppt中制作可视化地图也非常容易,手段也多种多样,主要还是依靠添加矢量地图然后进行区域编辑来实现的。添加矢量地图的方式有很多,个人选用PA插件下载地图图标添加。对于添加的矢量地图,可以任意对选中地区进行着色,从而体现数据差异。

ppt中制作可视化地图仅需逐块着色即可

05 Tableau

谈到数据可视化,几乎避免不了要与BI软件产生联系,比如说Tableau。Tableau是专门为制作可视化图表而存在的,自然少不了地图可视化。与Excel类似,在Tableau数据源中输入地理位置信息及相应数据后,可以通过简单的拖拽和设置实现地图绘制。最为方便的是,Tableau支持便捷的筛选、标记和分组等功能。不过考虑Tableau的使用普及程度还远远不如Office、网页在线等平台,所以Tableau可能并不会成为首选。

与Tableau类似的可用于制作可视化地图的软件还有PowerBI、DataFocus等,都可以简单操作快速上手。

06 对比与总结

  • 可视化地图是一种常用的可视化展现形式,实现手段也多种多样

  • python的pyecharts库是基于百度Echarts库实现的,常用Map、Geo两个类制图,接口丰富、设置多样,图表美观且支持交互

  • 百度Echarts支持在线生成可视化地图,社区有大量精美案例可供选择,简单编辑数据即可

  • office的Excel和PPT均可制作可视化地图,二者是几乎人人都会用的办公软件,操作简单、门槛较低,但功能也相对单一

  • Tableau软件制作可视化地图也非常方便且功能强大,但使用灵便程度不如前几种方式

| 转自:数据分析1480


End


    Pandas数据可视化怎么做?    20个增长黑客经典案例。    数据分析里常用的五个统计学概念
数据不吹牛读者群已经建立后台回复“入群”一起加入有趣讨论吧~

“有点意思”

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Pyecharts 绘制 3D 地图 `Pyecharts` 是一个强大的 Python 可视化工具,支持多种类型的图表绘制。然而,在当前版本中,`Pyecharts` 并未直接提供原生的 3D 地图功能[^1]。如果需要实现 3D 效果的地图展示,则可以通过 `ECharts GL` 的扩展来完成此需求。 以下是基于 `Pyecharts` 和其底层依赖 `ECharts` 实现的一个解决方案: #### 安装必要的库 为了使用高级特性,需安装最新版 `pyecharts` 库以及相关依赖项: ```bash pip install pyecharts==1.7.1 ``` #### 示例代码:绘制 3D 河南地图 由于 `Pyecharts` 默认不支持 3D 地图渲染,因此可通过自定义配置文件加载外部 ECharts 扩展插件(如 echarts-gl)。下面是一个简单的例子,用于演示如何创建 3D 地图效果。 ```python from pyecharts.charts import Map3D from pyecharts import options as opts import json # 加载河南地区的 JSON 数据 (可以从公开资源下载) with open("henan.json", "r", encoding="utf-8") as f: geo_json = json.load(f) # 注册新的地理数据到 Map3D 中 Map3D().add_js_funcs( """ var henanJsonData = {}; echarts.registerMap('Henan', henanJsonData); """.format(json.dumps(geo_json)) ) # 构建数据列表 [(地区名, 值), ...] data_pairs = [("郑州市", 100), ("洛阳市", 50), ("新乡市", 30)] c = ( Map3D() .add( series_name="河南省", data_pair=data_pairs, maptype="Henan", label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts(min_=0, max_=100), title_opts=opts.TitleOpts(title="3D 河南地图"), ) .render("3d_henan_map.html") ) ``` #### 关键说明 1. **JSON 文件**: 需要提前准备一份关于河南行政区划的 GeoJSON 文件,并将其路径替换至脚本中的 `"henan.json"` 处。 2. **注册地图**: 使用 `echarts.registerMap()` 方法将自定义区域导入到项目环境中。 3. **3D 渲染**: 虽然官方文档较少提及具体参数调整方法,但通过设置全局选项可以进一步优化视觉体验[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值