用Tableau制作动态的足迹地
作者喜欢旅游,大中国的山水壮丽秀美,时刻吸引着我走出去拥抱各地的风土。从01年到19年陆续走过了20多个省50多个城市,因此想将这些美好的足迹记录下来,也是我的第一个可视化作业。Tableau自带的地理信息没有将香港台湾等地区内置到中国(哼),因此在按照省份涂色上出现了一些问题。这个应该可以用导入地图源来解决,不过作者没有试验过。按照日期顺序将去到的省份涂上颜色,以该省份到达的城市数量多少区分颜色深浅,动态地展现作者在各省的足迹,最后的效果还算比较满意
制作过程中主要遇到了几个问题:
1. 城市用标记标出,可以看到该城市在省份中的相对位置,同时要以省份维度涂上颜色,因此需要同时用到符号地图和填充地图。前者用于标记城市位置,后者用于填充。可以用双轴来创建符号和填充的混合地图,先创建符号地图,再将经纬度二次拖入行列,在第二个经纬度上右键选择双轴后,就会自动混合,创建两个地图图层,混合后即可在填充地图的图层中按照省份维度填充颜色,我选择的是绿色渐变,城市数量越多,绿色越深
2. 有很多小城市无法自动匹配,需要手动查找或添加经纬度。如四川的阿坝,在tableau内是用了拼音Aba Zangzu Zizhizhou这样的形式,吉林的白山市则完全没有,需要自己输入经纬度
3. 希望能按日期顺序播放,而且城市数量也按照日期顺序累计计数。在不添加播放器之前,可以用tableau自动计算的=#记录数来解决,记录数可以按照省份统计(只要将省份拖入详细信息中)。但将日期添加到页面之后,虽然记录数也可以按照日期和省份来统计,但只能统计当前维度下的总记录数,而不能统计每个页面在播放时的累计数。因此需要自己创建一个计算字段累计数,公式是这样的。
同时需要将累计数拖入筛选器并筛选大于1,原因在于,在播放的时候需要保留历史记录,当创建日期页面后,tableau的方式是将每个日期都复制一遍相同的数据,从而可以在播放的时候使得每一页都能保留所有的原始信息,在查看数据的时候可以发现复制出了很多原始数据,而且非常多的数据行中累计数为空。比如15年到过ABC这三个城市,16年到过DE两个城市,这样的五条数据会变成15年ABCDE五条和16年ABCDE五条。15年的ABC累计数为1而DE累计数空,同样的,16年的ABC累计数为空而DE累计数为1。因此用筛选器过滤掉空值后,地图层才能展现真实的信息
4. 播放器的速度控制。播放器是按照日期来渐进的,但有些城市之间的日期间隔很近,可能就相隔了两三天,有些城市的日期相隔很远,可能相隔了一两年,此时播放器的速度会在相隔日期短的城市之间变得无感,像是同时出现的,影响了整体的播放体验。毕竟播放器是一个附加功能,没有太多扩展性,因此作者最后只能将任意两个城市之间的日期等距分布,数据上便无法体现真实的足迹日期了。希望后面能想到办法解决这个问题。