上一篇文章我们用表计算的方法做了一个桑基图,那个是通用的方法,但是对于初学者来说,可能不是特别好理解里面的表计算。
我个人觉得用联接表的方法,直接构造需要的数据,可能更好理解一点,一开始我也是用这种方法学习研究的。
首先我们构造数据集,我们还是用上一篇文章用过的2018年世界杯排名数据(百度网盘),但是我们需要用到两张新表,
第一张表 手工构造t值的数据,这就是一张世界杯排名,32个国家,32行数据,没有path字段,取而代之的是link字段
示例另一张表是构造好的t值表,这张表直接构造好了t值,-6到6,一共49行
示例Tableau引入数据,我们需要在连接数时使用内联接,连接两张表,这样通过形成笛卡尔积,直接做好了要用的数据,基本不需要再用表计算来计算t值和rank值了,后面的计算是行级别计算。
联接两个表以为需要计算的每一行数据都已经有了,不需要通过数据桶再构造数据了,我们只需要新建两个字段:
【sigmoid】=1/(1+EXP(1)^-[t])
【ft】=[身价排名]+(( [最终排名]- [身价排名])*[sigmoid])
然后,把【t】拖到列功能区,把【ft】拖到行功能区,【国家】拖到标记-详细信息,标记类型选择“线”,也可把国家拖到颜色标签,特别要指出的是,因为是行级别计算,需要在分析中取消聚合度量,才能计算每一个点的ft值
取消聚合效果如下,t和ft是不需要表计算的:
最终效果剩下的就跟第一篇一样了,拼接工作表。
还是把上面我做好的效果,放到了public上(public直达),和第一篇没区别。
效果图特别要说的是,画图的前提都是构造数据,不管是用什么方法,只要构造的数据是一样的,画出的图就是一样的。这个需要不断的去研究摸索。
网友评论