美文网首页
Tableau之桑基图进阶版

Tableau之桑基图进阶版

作者: 重木啊 | 来源:发表于2018-04-11 17:38 被阅读0次

自己乱填的数据做出来较乱,且有部分内容暂时理不清,所以分析一下原作者绘制的桑基图,附上原作链接https://www.jianshu.com/p/73d53eff9e6e

准备阶段

涉及的基本函数:

ATTR(expression)

如果它的所有行都有一个值,则返回该表达式的值。否则返回星号。会忽略 Null 值。

SUM(expression)

返回表达式中所有值的总计。SUM 只能用于数字字段。会忽略 Null 值。

RUNNING_SUM(expression)

返回给定表达式从分区中第一行到当前行的运行总计。

TOTAL(expression)

返回表计算分区内表达式的总计。

以及表计算中的寻址与分区:

TuSwap - Tableau 表计算 | 寻址方式的区别(分享自知乎网)https://zhuanlan.zhihu.com/p/24915109?utm_source=qq&utm_medium=social

寻址(定向)  分区(划定范围)

寻址用于确定计算移动的方向

分区字段会将视图拆分成多个子视图(或子表),然后将表计算应用于每个此类分区内的标记。

在表计算的特定维度中,√为寻址,口为分区,表示沿着【寻址】对于每个【分区】

分析及绘制阶段

在桑基图的制作中,涉及两部分数据,一是原始基本数据,增加一列LINK ;二是辅助列表,1.t值的范围[-6,6],步长0.25,总计49行,2.path列,[0-98]步长为1; 3.Min or Max,[min,max]用于与原始主数据关联

下图为还原图涉及的维度与度量数据,原图主要展示了某一年的母亲年龄所对应的婴儿出生体重的流向,主要涉及维度为Group Step-1  Group Step-2,涉及度量为母亲年龄对应的不同年代的出生数

计算字段罗列:

Size A:    sum([出生数])/total(SUM([出生数]))

Position1 :

Max Position 1      RUNNING_SUM([SizeA])

Min Position 1      RUNNING_SUM([SizeA])-[Size A]

Position2:

            Max Position 2      RUNNING_SUM([SizeA])

          Min Position 2      RUNNING_SUM([SizeA])-[Size A]

Sigmoid:  1/(1+EXP(1)^-[t])

Curve Max:[MaxPosition 1]+(([Max Position 2]-[Max Position 1])*ATTR([Sigmoid]))

Curve Min:[MinPosition 1]+(([Min Position 2]-[Min Position 1])*ATTR([Sigmoid]))

Polygon Curves A:

CASE ATTR([Min or Max])

WHEN 'Min' THEN [Curve Min]

WHEN 'Max' THEN [Curve Max]

END

对于size A的表计算,group step-1

group step-2为寻址,min or max 与t 为分区

(在min or max 与t 详细数据点交叉构成的区域中针对group step-1 group step-2所对应的出生数进行计算),

total(SUM([出生数]))类似于数据为6与max, 6 min, 5.75 max ,5.75 min…的子区块数据总计,

(例如母亲年龄<25岁的婴儿出生体重在2500-2999在6与max的范围中的出生数) 

分区与寻址逻辑理解中

如此sizeA便可将相关数据线划为整体且可作为位置确定的基础数据

因size A为总计数据且为使对应数据范围有相应的厚度,所以在位置确定中分为MAX position以及MIN position,以确定厚度的最上点与最下点

所以标记选多边形

还原过程中未得到曲线而是直线,不知是哪步的问题= =

相关文章

网友评论

      本文标题:Tableau之桑基图进阶版

      本文链接:https://www.haomeiwen.com/subject/tdyzhftx.html