如何用tableau画桑基图(决策树)

当tableau里面发布的看板较多时,可能就需要一个导航,除了普通的列表以外,桑基图也是一个不错的选项。

1.demo链接:https://pan.baidu.com/s/1dFPonnV

效果图:

如何用tableau画桑基图(决策树)

2.数据准备

文件1:包含数据层级关系,以及点位置

文件2:包含等级,T1,T2其中T1为-6到6之间,以0.25为间隔的等差数列,level=1时T2=T1,level=2时T2=T1+12,level=3时T2=T1+24等,依次类推。

文件一需要做的处理:

position1_label:上一节点名称

position2_label:本节点名称

category:position1_label-position2_label

position1,position2:

    先计算所有节点的position2:
    对concat(level1,coalesce(level2,level1),coalesce(level3,level2,level1))进行排序(其中coalesce函数表示,取第一个不为空的值),level3为对应顺序,level2为在根据level1,level2计算的排序的均值(可能有小数,通过floor函数取整数),level1则为根据level1计算的均值。
    在看板中表计算获取position1,公式为floor({fixed position1_label:avg(position2)})。如果position1_label有重复值可能会出现对应不上的情况,可以通过同时取上其他值构建一个唯一的position1_label,比如level1,level2等。

3.数据处理

3.1.添加字段:

    3.1.1.sigmoid--计算:1/(1+EXP(1)^-[T1])

    3.1.2.curve--计算:[position1] + (([position2]-[position1])*[sigmoid])

    3.1.3.points--计算:if  last()=0 then sum([T2]) end

    3.1.4.color--计算 if sum([T2])= -6 then 'gray' elseif sum([T2])= 6 then 'orange' elseif sum([T2])= 18 then 'blue' elseif sum([T2])= 30 then 'green' elseif sum([T2])= 42 then 'pink' end

3.2 看板操作:

    将T1(设置为维度),points(表计算如下),level,category,position1_label,position2_label添加到标记中

如何用tableau画桑基图(决策树)


4.若要纵向排列

4.1 更换行列

如何用tableau画桑基图(决策树)

结果如图:

如何用tableau画桑基图(决策树)

4.2 curve轴倒序排列

如何用tableau画桑基图(决策树)如何用tableau画桑基图(决策树)


5.如果需要链接,在文件1中加上对于的url,然后添加操作-url-链接列引用url字段就好