日常工作中,我们经常会用到思维导图来梳理流程或逻辑关系。有数据粉问:在 Tableau 中能创建类似思维导图的流程图么?
通常,我们不建议在 Tableau 中创建流程图,但是如果确实需要的话,也是可以实现的。
具体如何实现呢?栗子一睹为快吧!
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:创建自定义流程图表。
为方便学习,栗子使用自备数据源。掌握栗子方法后,数据粉可尝试使用自己的数据源。懒癌患者可通过以下链接获取栗子数据源:
https://www.dkmeco.com/cms/course/detail/534?suid=5
具体步骤如下:
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 到了吗?赶快试试看吧!
下一期《举个栗子》,再会~
文章部分信息来源于网络,如有侵权请告知