Tableau上面地图与条形图结合_【新功能】Tableau全新地图实战,更快、更高、更强...

终于来了期待已久的Tableau地图大升级,功能很强大,恰好遇到了客户提出的地理空间分析新需求,第一时间完美使用了新推出的空间函数,恰如甘霖,从天而降。鉴于官方目前中文介绍尚且不足,我使用模拟数据做了一个完整的案例,期望帮助到更多的Tableau朋友。

一、功能改进

1、地图矢量化——性能拯救者

新的地图支持矢量地图,其原理是矢量切片(Vector tile),相比之前的栅格地图,极大的提高了加载和地图反映的速度。简单的说,栅格数据是最小单元的切片图片,而矢量数据是点、线和面,点构成线,线构成面,后者更加精准,生成更迅速。

9b7d87e64d34a5bf35e037d9061e1999.png

矢量地图的第一大好处,是在平移、缩放操作时的平滑性能和清晰度,其次是支持更多的地图背景样式(普通、黑色、简约;街道、卫星、户外)。在这里放官方的图片,体会一下矢量地图的强大。

bc505886ae94a59d62dd571b25cb1fa9.gif

6cc60dad2066212b3bb42a7ecbdcd759.gif

Tableau新版本支持了更多的地理图层,特别是卫星地图,街道地图。

91ed140dc28b00654737a92920986c7a.png

2、支持 PostgreSQL+PostGIS 空间数据

在新的版本中,“您可以通过 PostGIS 扩展直接使用来自 PostgreSQL 或 Pivotal Greenplum 数据库的空间数据。您可以直接在 Tableau 中对这些数据进行深入研究,事先无需进行导出或处理。现在,还能利用数据库支持的空间操作来进行更加高级的空间分析。” 嗯,这个可能大家基本用不到,我也是。后期可以找一下这方面的地图数据再说。

24c58e86806151095c2d3d0f9a418b83.png

关键是空间函数,我结合自己的测试数据介绍一下。

二、空间函数

本次功能升级新增了两个空间函数,先说一下用法,然后结合模拟数据介绍完整用法。

1、空间函数语法

新版本包含了 makepoint() 和makeline() 两个空间函数,分别用来生成点和生成线。

我们经常会使用包含经纬度坐标的数据,为了生成地图,我们需要把经纬度分别加入X轴和Y轴,除此之外,再无用处;使用makepoint()函数,相当于创建了一个新的地理字段,从而把坐标转化为类似于城市、机场类似的精准地理位置。

42715b6396b21c0336781adf33b444d7.png

这样在任何时候,双击这个新字段,就会自动生成地图,如下:

96395b5dc6f80aab9108c39aa4df20ac.png

有了点位置,我们可以把两个点练成一条线,这里就只需要使用makeline()函数即可,双击这个新的字段,就会自动生成点之间的连线;而且,当两个点的距离足够远时,还会生成一定的弧线(测地线),从而更加直观。(The calculation automatically produces curved geodesic lines when the lines span longer expanses of the globe.)

b5f3bdab33627b22beba5c0b4f108208.png

在官方的这个数据中,我通过地图双轴做了地图叠加,从而把点和线结合起来生成了如上的地图。——可以下载我更新后的仪表板:

  • Use Spatial Functions Makeline Example Workbook.twbx

2、关键场景:空间函数用于数据连接

空间函数最佳用法之一在于空间连接更加方便,以前想要连接空间文件和包含经纬度坐标的文件,是没有字段连接的——空间文件往往是点或者线,而经纬度是分开的两个坐标。有了空间函数,就可以在连接的时候,直接基于经纬度创建一个连接字段,如下图:

b771b4e1e86c79527e769a5ebbb52602.png

最终的效果可以是这样的:

d7749c09734d3cd2fd333c7f760b7032.png

三、案例:使用空间函数做深度地图可视化

上面讲了空间函数的方法,具体用到业务中,有几个坑儿需要迈过去。结合我的模拟数据demo,我从头说一下我的分析过程。

1、数据整理

数据素材:某城市某个时间段地铁的上车到下车的区间与客流量数据、车站ID与名称对应关系表、车站地理位置空间文件。

问题:分析从每个站点进站的乘客到其他各个站点的出站情况(区间分析)。

数据整理:鉴于我们的数据分散在三个文件中,我们需要先把数据整合到一起,以第一个数据为基准(序号、进站ID、出站ID、客流量),把进站ID和出站ID后增加关联的进站站点名称和出站站点名称,同时增加关联的进站站点地理位置和出站站点地理位置。通过Tableau desktop的关联如下:

3fd133afaace7ea05d988caccca650a5.png

默认文件会包含被关联表的所有数据,同时按数据源表分组显示,可以修改为“按文件夹分组显示”,同时隐藏不用的字段。

2、生成空间地图

按照上面的函数说明生成“连线字段”,两个参数分别是关联到主表的进站地理位置和出站地理位置,我们修改了几何的名称,方便理解,函数如下:

车站连线
MAKELINE([进站-几何], [出站-几何])

双击这个地理位置字段,默认会生成地图,默认地图包含了所有的连线,非常混乱,我们加入筛选器,从而只查看单一进站车站所对应的出站数据。此时我们把“区间客流量”拖拽到颜色标记上,希望每条线对应不同的客流量,但是意外发现:根本没有变化!而且颜色图例只有一个聚合数量,再仔细看,整个地图就是一整块被选择的,这个聚合的客流量是当前车站所有的进站流量,而没有分配到不同的线路上。WHY?

611172096cdadafcf7cacf01bdb1a8e9.png

这里又涉及到Tableau的基础概念——详细级别。上图的详细级别是“进站车站”,筛选后就相当于散点图上的被聚合的一个点,我们想要的是详细级别为“出站车站”,把一个数据展开为多个出站数据。HOW?

在标记的详细级别中增加新的维度,比如把“出站ID”加入到“详细级别”,此时每条线路就可以被依次选中了。此时就可以用颜色或者形状突出该区间的客流量情况。调整工具提示,就可以查看从进站到出站的客流量了。

  • 想要了解什么是详细级别,推荐阅读LOD博客:【Tableau】详细级别表达式LOD_详尽入门(1)  本文已经更改了之前在官方发文时的错误。

fdd0efc2bbc21b2209d1bd66fedffa01.png

3、增强地图分析

上面看似解决了问题,但是不够“直觉”,我们还需要进一步增强分析,才能更好地满足客户的要求。比如进一步增加地图的背景说明,标记进站和出站的位置和名称;为了弥补地图数据直观但是不够细致的不足,增加其他的可视化图形辅助查看等。

在上图中,为了进一步增加所有车站的位置信息,我们可以使用双轴,用圆圈代表车站位置,并将颜色、大小和线对应起来。在下图中,我们复制“纬度”生成一个新的地图,把之前的连线地理信息改为空间文件的出站站点信息(切记注意,如果用“进站-几何”空间信息会出错,只有一个点)。标记颜色和此前一致,如此改为双轴后,线和点就会浑然一起;你甚至可以让线和点的大小都一致——只需要使用同一个字段加入标记-大小。

8c30e7648f756cdfb591d9b120a33ec0.png

剩下的就是添加辅助的可视化图形,在这里我使用了条形图来形象地展示每个站的出站排名,弥补地图对于排序的不足(虽然我在工具提示中使用了表计算-排序);又用背对背柱状图来展示每个站点进出站客流,弥补地图侧重宏观不适合围观对比的短板。在制作时,为了保持数据的一致,建议复制一份地图文件,然后通过修改可视化来实现,而非从头再来。

7abc1e4daed122dff90a26bf72b39a22.png

当然,外出进一步突出各点的效果,也可以把“进店站点”加入“页面”,从而实现动态的播放每个站点的情况。于此以来,即可明了地查看每个站点的进站及对应的出站情况了。

【结】追求完美,进步不止

更新的Tableau地图进一步增强了连线分析,空间函数学习,Tableau值得拥有。

如果有一天Tableau支持添加wmts服务,我就爱死它了😄

by  喜乐君
Tableau partner
Desktop and Server Qualified Certification

如需咨询,敬请联系微信 或者邮箱 tableau@vizdata.cn

fe1dddd659fa48e858b1b06b1d238ad3.png

May 29, 2019 3:08AM / 8:50update
May 30, 2019 update

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更这些源码资源,以适应各平台技术的最发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值