举个栗子!Tableau 技巧(274):创建有趣的「手绘」条形

Tableau 条形图的🌰已经很丰富了。今天,我们就来点儿特别的呗!「手绘」条形图,最适合手账粉们的数据分析可视化图表~

如何在 Tableau 中具体实现呢?今天的栗子,一睹为快吧!
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:创建有趣的「手绘」条形图。
为方便学习,栗子使用自拟的数据源(如下图)。掌握栗子方法后,数据粉可尝试使用其他数据源。
栗子数据源:
- Date
- Lines
- Points



具体步骤如下:
1
连接数据源
打开 Tableau Desktop,连接栗子数据源,使用每边值为 1 的连接计算来联接 “Data” 表和 “Lines” 表。

再将“Points”表联接到 “Lines” 表。

2
创建参数和计算字段
新建工作表,首先需要创建条形图的外框。先创建四个参数:




再创建五个计算字段:
➤ 创建计算字段:抖动,键入函数
Random()*2-1

➤ 创建计算字段:最大长度,键入函数
{MAX([Line ID])}

➤ 创建计算字段:外栏长度,键入函数
([Box Office Gross]/{MAX([Box Office Gross])})*[最大长度]

➤ 创建计算字段:手绘条形图_X,键入函数
CASE [Points]
WHEN 1 then 0+([抖动]*[水平抖动点])
WHEN 2 then [外栏长度]+([抖动]*[水平抖动点])
WHEN 3 then [外栏长度]+([抖动]*[水平抖动点])
WHEN 4 then 0+([抖动]*[水平抖动点])
END

➤ 创建计算字段:手绘条形图_Y,键入函数
CASE [Points]
WHEN 1 then [Rank]+([间距]/2)+([抖动]*[垂直抖动点])
WHEN 2 then [Rank]+([间距]/2)+(([抖动]*[垂直抖动点])*2)
WHEN 3 then [Rank]-([间距]/2)+(([抖动]*[垂直抖动点])*2)
WHEN 4 then [Rank]-([间距]/2)+([抖动]*[垂直抖动点])
END

3
创建工作表:外线
将计算字段“手绘条形图_X”、“手绘条形图_Y”分别拖放至列和行,并分别右键单击这两个胶囊,下拉菜单都勾选:维度。
将“Line Type”字段拖放至“筛选器”卡,弹窗中勾选:Outer Lines。
将“Rank”转换为维度后拖放至“标记”卡的详细信息中,将“标记”卡的标记类型改成:线,然后将“Points”转换为维度后拖放至其路径中。
右键单击“Y”轴,下拉菜单选择:编辑轴,弹窗中选择:倒序。

接着,我们来创建条形图里的短线。
4
创建工作表:交叉线
新建工作表,然后先创建三个计算字段:
➤ 创建计算字段:交叉线_X,键入函数
if [Points]=1
then [Line ID]-1+([抖动]*[水平抖动点]*2)
else [Line ID]+([抖动]*[水平抖动点]*2) END

➤ 创建计算字段:交叉线_Y,键入函数
if [Points]=1 then [Rank]-
([间距]/2)+([抖动]*[垂直抖动点]*2) else [Rank]+([间距]/2)
+([抖动]*[垂直抖动点]*2) END

➤ 创建计算字段:判断交叉线范围,键入函数
[Line ID]<=[交叉线]

将计算字段“交叉线_X”、“交叉线_Y分别拖放至列和行,并分别右键单击这两个胶囊,下拉菜单都勾选:维度。
将字段“判断交叉线范围”拖放至“筛选器”卡,弹窗中勾选:真。再右键单击该胶囊,下拉菜单选择:添加为上下文。将“Line Type”字段也拖放至“筛选器”卡,弹窗中勾选:Cross Lines。
将“Line ID”和“Rank”分别拖放至“标记”卡的详细信息中,将“标记”卡的标记类型改成:线,然后将“Points”拖放至其路径中。
右键单击“Y”轴,下拉菜单选择:编辑轴,弹窗中选择:倒序。

5
创建工作表:组合线条
新建工作表。先创建三个计算字段:
➤ 创建计算字段:组合线条_X,键入函数
if [Line Type]='Outer Lines'
then [手绘条形图_X] else [交叉线_X] END

➤ 创建计算字段:组合线条_Y,键入函数
if [Line Type]='Outer Lines'
then [手绘条形图_Y] else [交叉线_Y] END

➤ 创建计算字段:判断区域在外栏长度内,键入函数
[Line ID]<=[外栏长度]

将计算字段“组合线条_X、“组合线条_Y分别拖放至行和列,并分别右键单击这两个胶囊,下拉菜单都勾选:维度。
将字段“判断交叉线范围”拖放至“筛选器”卡,弹窗中勾选:真。再右键单击该胶囊,下拉菜单选择:添加为上下文。将“判断区域在外栏长度内”字段也拖放至“筛选器”卡,弹窗中勾选:真。
将“Line ID”和“Rank”分别拖放至“标记”卡的详细信息中,将“标记”卡的标记类型改成:线,然后将“Points”拖放至其路径中。
右键单击“Y”轴,下拉菜单选择:编辑轴,弹窗中选择:倒序。

6
创建工作表:字段名称
新建工作表。创建两个计算字段:
➤ 创建计算字段:占位符,键入函数
""

➤ 创建计算字段:名称,键入函数
if [Line Type]='Outer Lines' then [Name] END

将字段“Rank”和“名称”拖放至行,将“占位符”拖放至“标记”卡的文本中。将“名称”拖放至“筛选器”卡中,弹窗中仅勾选:Null,并勾选右侧:排除。
右键单击列上的“Rank”胶囊,下拉菜单去掉勾选:显示标题。隐藏行字段标签后,通过设置格式去掉所有的底部框线、将文字设置成近似手绘效果的字体。

7
创建仪表板
新建仪表板,将工作表“名称”与“组合线条”拖放至仪表板空白处,并进行简单的排版,就完成了我们想要的手绘条形图咯~

本期的 Tableau 技巧,你 Get 到了吗?
下一期,再见~

文章部分信息来源于网络,如有侵权请告知