用Tableau画有趣的点状地图
前两天听了一次tableau官方的在线课程,有个六边形地图的案例挺有意思,但是官方没有提供这次课程的文件。不过看到Andy Kriebel在public上放出了一个作品Fun with Maps,介绍了制作方法,大家可以去下载学习。
https://public.tableau.com/profile/andy.kriebel#!/vizhome/FunwithMaps/Maps
最上面的两这个地图就是常用的点状图和密度图,一般来说能够解决大部分问题。但是有时候在点状图和密度图不能明显的得出一些结论的时候,也可以尝试用下面的方法。
方法1 Round函数
- 新建一个参数Rounding Parameter
四舍五入的位数
创建计算字段
- Round Lat=ROUND([Latitude],[Rounding Parameter])
- Round Lon=ROUND([Longitude],[Rounding Parameter])
通过四舍五入,目的是将位置相近的经纬度分组,减小数据的颗粒度
- 将[Round Lat]拖到行功能区,[Round Lat]拖到列功能区,记录数拖到颜色(如果这时候数据是集中在一起的,也可以尝试取消聚合或者手工编辑轴的范围)
- 这时可以手工调整[Rounding Parameter]的大小,调整效果,也可以自己选择方形或者其他自定义图形
方法2 HEXBINX和HEXBINY函数
- 新建一个参数HexBin Parameter
创建计算字段
- HexX=
HEXBINX([Longitude]*[HexBin Parameter],[Latitude]*[HexBin Parameter])
- HexY=
HEXBINY([Longitude]*[HexBin Parameter],[Latitude]*[HexBin Parameter])
官方解释:将 x、y 坐标映射到最接近的六边形数据桶的 x 坐标。数据桶的边长为 1,因此,可能需要相应地缩放输入。HEXBINX 和 HEXBINY 是用于六边形数据桶的分桶和标绘函数。六边形数据桶是对 x/y 平面(例如地图)中的数据进行可视化的有效而简洁的选项。由于数据桶是六边形的,因此每个数据桶都非常近似于一个圆,并最大程度地减少了从数据点到数据桶中心的距离变化。这使得聚类分析更加准确并且能提供有用的信息。
- 将[HexX]拖到列功能区,[HexY]拖到行功能区,记录数拖到颜色
- 这时可以手工调整[HexBin Parameter]的大小,调整效果,也可以自己选择方形或者其他自定义图形,效果和round函数基本是一样的。
这种地图形式,实际上无法与地图背景结合,所以要根据实际应用场景取舍,对于大家比较熟悉的地图可以采用这种方式,Tableau的官方微信号《Tableau社区》有个美国地图的例子,我觉得就很好。
另外,官方扩展库里也有一个Mapbox的扩展也能实现类似的功能,而且可以结合背景地图,效果很不错。大家有兴趣可以研究一下,目前只支持Tableau Desktop for Mac,因为没有苹果电脑,我用虚拟机试了一下,不是提别稳定,而且和其他图表交互也不是很好,仅供参考。
此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下