最近一个任务:利用Tableau绘制出用户访问手机某App时热力图,这其实难度不大,但是一个很好熟悉Tableau功能机会的例子,毕竟要玩透Tableau还是需要下很多工夫的,所以本着学习分享的态度就记下这篇博客了。
目录
(1)我们有什么?
delete.xlsx文件,主要数据:1、“地理位置” : 该文件记录了用户访问App时的地理位置信息;2、“小程序访问次数” : 该文件记录了单个用户的访问次数;因此我们就可以绘制用户访问App时所在的区域的热力图了。
(1)地理位置:
<name>湖北省十堰市郧西县七夕大道在天润新城附近</name><province>湖北省</province><city>十堰市</city><subcity>郧西县</subcity><street>七夕大道在天润新城附近</street>
(2)小程序访问次数
(2)我们还差什么?
用Tableau处理地理位置信息时,如果只是依靠地理位置,然后不引用空间文件,我们绘制出的地图无法集中到地理位置中的详细区域信息,很可能你要着重想关注的是湖北地区,而Tableau展现的是中国地图乃至亚洲地区,这样我们观察到的热力图是非常不清晰的,也不直观。
如下图所示:
这样的数据是不利于我们观察湖北省地区的热力图信息的。因此我们需要一份湖北省市县区shp文件,在这里,我就提供自己的用的shp吧
链接:https://pan.baidu.com/s/19e517y-LuMc4knGU-InC8w
提取码:q2b0
(3)我们需要哪些数据?
在我们有两份文件数据,1、delete.xlsx;2、县级统计数据.shp,如何将delete.xlsx中的地理位置信息映射到县级统计数据.shp的地图信息中呢,我们需要将两份文件数据取交集。
这里存在的一个问题是delete文件中地理位置信息是一长串字符串,里面包含了区县信息,需要我们提取出来,才能与县级统计数据.shp文件的NAME字段匹配取交集.
字符串提取: 编辑连接计算,输入以下信息
MID([地理位置],FIND([地理位置],'<subcity>')+9,FIND([地理位置],'</subcity>')-FIND([地理位置],'<subcity>')-9)
这样我们就可以让delete文件中编辑的字段与县级统计数据.shp的NAME字段匹配上了。
(4)我们还需要进行数据处理
数据处理主要包括两方面,1、由地理位置的字符串,拆分成省、市、区、街道,四种位置字段;2、小程序访问次数按区县进行重新统计。
1、地理位置的字符串拆分成省、市、区、街道,四种位置字段
计算方式和上面字符串提取雷同。以省为例子,如下图所示:
最后可以拆分成如下几种地理字段,这样做的目的是为了将信息映射到地图上去。
2、 小程序访问次数按区县进行重新统计
我们之前小程序统计的是用户个人访问的次数,显然这样是无法针对区县进行统计的,因此需要我们创建新的字段。
如图,我们创建了市区小程序访问次数,计算公式如下:
(5)绘制热力图信息
如下图所示,在筛选器那里,我筛选出了湖北省,然后行和列分别是生成的经纬度,最后热力图中,蓝色区域是访问量很小的地方,而橘色、粉红色地方则是访问量很高的地方,至此热力图绘制完毕。
本文忽略了Tableau的一些基础用法,主要是对创建字段以及所设计的公式有很多说明,具体不懂的细节欢迎评论下面留言,我每天都会查看博客的。