举个栗子!Tableau 技巧(198):创建自定义流程图表

published: 2022-10-14

日常工作中,我们经常会用到思维导图来梳理流程或逻辑关系。有数据粉会问:在 Tableau 中能创建类似思维导图的流程图么?

通常我们不建议在 Tableau 中创建流程图,但是如果确实需要的话,也是可以实现的(如下图)。


具体如何实现呢?栗子一睹为快吧!

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:创建自定义流程图表。

为方便学习,栗子使用自备数据源。掌握栗子方法后,数据粉可尝试使用自己的数据源。懒癌患者可通过以下链接获取栗子数据源:

具体步骤如下:

1.准备数据 & 连接数据

为实现流程图,我们需要先准备数据源”流程图“,包含 3 份数据:

  • 数据:流程,用于所展示的流程;

  • 数据:流程路径,用于流程间的线条连接;

  • 数据:数据致密化,此数据源固定,用于填充数据形成完整图形。

数据准备好之后,打开 Tableau Desktop,连接数据源“流程图“。将工作表“流程”拖放至右上方空白处,并右键单击该数据,下拉菜单选择:打开。

再将工作表“流程路径”拖放至“流程”的“将表拖至并集”,如下图。

将工作表“数据致密化”拖放至右上方空白处,构建联接,选择“内部”,下方“创建联接计算”,如下图。

两边的联接计算都写:1。

计算完成之后如下图。

2.创建数据桶和计算字段

新建工作表,在“数据”窗格中右键单击字段“Path”,下拉菜单中选择:创建-数据桶,在弹出的对话框中,数据桶大小键入:1。

单击”数据“窗口右上角 ▼ 符号,在下拉菜单中选择:创建计算字段。接着,需要创 12 个计算字段:

➤ 创建计算字段:Start X,该字段为流程框和流程路径的 X 轴起点,可根据实际流程图需要自行调整。键入函数:

CASE [ID]

WHEN '1' THEN 0

WHEN '2' THEN 2

WHEN '3' THEN 2

WHEN '4' THEN 4

WHEN '5' THEN 4

WHEN '6' THEN 4

WHEN '7' THEN 4

WHEN '8' THEN 4

WHEN '9' THEN 6

WHEN 'LINK1' THEN 1

WHEN 'LINK2' THEN 1

WHEN 'LINK3' THEN 3

WHEN 'LINK4' THEN 3

WHEN 'LINK5' THEN 3

WHEN 'LINK6' THEN 3

WHEN 'LINK7' THEN 3

WHEN 'LINK8' THEN 5

END

➤ 创建计算字段:End X,该字段为流程框和流程路径的 X 轴终点。键入函数:

[Start X]+1

➤ 创建计算字段:Start Y,该字段为流程框和流程路径的Y轴起点,可根据实际流程图需要自行调整。键入函数:

CASE [ID]

WHEN '1' THEN 0

WHEN '2' THEN 2

WHEN '3' THEN -2

WHEN '4' THEN 3

WHEN '5' THEN 2

WHEN '6' THEN 1

WHEN '7' THEN -1

WHEN '8' THEN -3

WHEN '9' THEN -3

WHEN 'LINK1' THEN 0

WHEN 'LINK2' THEN 0

WHEN 'LINK3' THEN 2

WHEN 'LINK4' THEN 2

WHEN 'LINK5' THEN 2

WHEN 'LINK6' THEN -2

WHEN 'LINK7' THEN -2

WHEN 'LINK8' THEN -3

END

➤ 创建计算字段:End Y,该字段为流程框和流程路径的Y轴终点,可根据实际流程图需要自行调整。键入函数:

CASE [ID]

WHEN '1' THEN 0

WHEN '2' THEN 2

WHEN '3' THEN -2

WHEN '4' THEN 3

WHEN '5' THEN 2

WHEN '6' THEN 1

WHEN '7' THEN -1

WHEN '8' THEN -3

WHEN '9' THEN -3

WHEN 'LINK1' THEN 2

WHEN 'LINK2' THEN -2

WHEN 'LINK3' THEN 3

WHEN 'LINK4' THEN 2

WHEN 'LINK5' THEN 1

WHEN 'LINK6' THEN -1

WHEN 'LINK7' THEN -3

WHEN 'LINK8' THEN -3

END

➤ 创建计算字段:Index,键入函数

( INDEX() - 1 )

➤ 创建计算字段:Size,键入函数

WINDOW_MAX(MAX([End X])) - WINDOW_MAX(MAX([Start X]))

➤ 创建计算字段:X,键入函数

WINDOW_MAX(MAX([Start X])) + ( ([Index]) / 100 * [Size] )

➤ 创建计算字段:曲线,键入函数

ROUND((1/(1+EXP(-(-6+((INDEX()*0.12)))))),5)

➤ 创建计算字段:Y,键入函数

WINDOW_MAX(MAX([Start Y]))

+ ([曲线] * (WINDOW_MAX(MAX([End Y]))-WINDOW_MAX(MAX([Start Y]))))

➤ 创建计算字段:Y(标签),键入函数

IF [Index] = 0 AND WINDOW_MAX(MAX([Table Name])) = "流程" THEN

WINDOW_MAX(MAX([Start Y]))

ELSE

NULL

END

➤ 创建计算字段:标签,键入函数

IF [Index] = 0 AND WINDOW_MAX(MAX([Table Name])) = "流程" THEN

WINDOW_MAX(MAX([流程名]))

END

➤ 创建计算字段:厚度,键入函数

CONTAINS([流程名], "")

3.创建视图

将“Path(数据桶)”拖放至行,并右键单击该胶囊,下拉菜单中勾选:显示缺失值”。

将“标记”卡的标记类型改为:线,然后将行上的“Path(数据桶)”胶囊拖放至“标记”卡的路径中。

将计算字段“X”拖放至列,“Y”拖放至行。将“ID”拖放至“标记”卡的颜色中,将“厚度”拖放至“标记”卡的大小中。分别右键列和行上的“X”和“Y”胶囊,下拉菜单中选择:计算依据-数据桶。

再将计算字段“Y(标签)”拖放至行,并右键单击“Y(标签)”胶囊,下拉菜单中选择:计算依据-数据桶。

将“Y(标签)”“标记”卡的标记类型更改为:圆,移除该“标记”卡中的“厚度”胶囊,将“ID”胶囊更改为“详细信息”。然后,将字段“标签”拖放至该“标记”卡的标签中,再将“大小”调整为最小。

右键单击行上的“Y(标签)”胶囊,下拉菜单中选择:双轴;右键“轴”,选择:同步轴;再右键界面上的 nulll 值,选择:隐藏指示器。

最后,需要调整视图的细节。隐藏轴、去掉网格线条。单击“Y(标签)”“标记”卡的标签,更改对齐方式为“水平靠右”和“垂直居中”,就得到了我们想要的呈现效果。

今天的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!


更多相关信息,请访问专题页: 数据可视化工具与可视化平台