举个栗子!Tableau 技巧(235):用「小提琴图 Violin Plot」 呈现盒须图的数据密集度
有数据粉反馈需求:在 使用盒须图查看数据分布 后,如何进一步了解盒须图中,每个位数的数据密集程度呢?
具体该如何实现呢?今天的栗子分享方法,一睹为快吧!
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:用小提琴图 Violin Plot 呈现数据密集度。
为方便学习,栗子使用一份简单的自拟数据源(如下图)。掌握栗子方法后,数据粉可尝试使用自己的数据。
具体步骤如下:
1.连接数据源
打开 Tableau Desktop,连接栗子数据源,将 sheet1 和 sheet2 两个表通过新建并集连接在一起。
2.创建计算字段和参数
新建工作表,单击“数据”窗格右上角 ▼ 符号,在下拉菜单中选择:创建计算字段。
➤ 创建计算字段:index,键入函数
INDEX()-1
然后,在“数据”窗格中,将"Sample ID"从度量拖放至维度中,转变为蓝色的维度字段。
➤ 创建计算字段:path id,键入函数
IF [工作表]='sheet1' THEN 1 ELSE 100 END
单击“数据”窗格右上角 ▼ 符号,在下拉菜单中选择:创建参数。
➤ 创建参数:bandwidth,如下图设置
➤ 创建参数:X scaling factor,如下图设置
➤ 创建计算字段:x-axis,键入函数
IF [index] = 0 THEN WINDOW_MIN(ATTR({MIN([Sample Value])})) - [X scaling factor]
ELSEIF [index] = 1 THEN WINDOW_MIN(ATTR({MIN([Sample Value])})) - [X scaling factor]
ELSEIF [index] = 99 THEN WINDOW_MIN(ATTR({MAX([Sample Value])})) +
[X scaling factor] ELSE WINDOW_MIN(ATTR({MIN([Sample Value])}) - [X scaling factor])
+(ABS((WINDOW_MIN(ATTR({MAX([Sample Value])})) + [X scaling factor]) -
(WINDOW_MIN(ATTR({MIN([Sample Value])})) - [X scaling factor])) * (([index]-1)/97))END
➤ 创建计算字段:y-axis,键入函数
IF [index] = 0 THEN 0
ELSEIF [index] = 99 THEN 0
ELSE
1/(WINDOW_MAX(ATTR({COUNTD([Sample ID])}))*[bandwidth])*
(1/(SQRT(2*PI()))) * EXP(-0.5 * (
([x-axis] - WINDOW_MAX(ATTR([Sample Value])))^2)/[bandwidth])END
➤ 创建计算字段:sum_y-axis,键入函数
WINDOW_SUM([y-axis])
右键单击"数据"窗格的“path id”,下拉菜单选择:创建-数据桶,如下图设置。
3.创建小提琴图表
分别两次将“sum_y-axis”拖放至列,将“x-axis”拖放至行。
将“全部”“标记”卡的标记类型改为:多边形,再将“Sample ID”拖放至该“标记”卡的详细信息中。
将“path id (数据桶)”拖放至行,并右键单击该胶囊,下拉菜单勾选:显示缺失值。
注意:这一步很重要!可以生成数据桶缺失的 98 个值,对于数据图形的连续起到非常重要的作用。
再将行上的“path id (数据桶)”胶囊拖放至该“标记”卡的路径中。
右键单击列上的第一个“sum_y-axis”胶囊,下拉菜单选择:编辑表计算,为 sum_y-axis、y-axis、index、x-axis 分别设置计算依据(让 Sample ID 在 path id 的上面)。
第二个“ sum_y-axis”胶囊做相同操作。
右键单击行上的“x-axis”胶囊,下拉菜单选择:编辑表计算。
右键单击横轴,下拉菜单选择:编辑轴,在弹框中勾选:倒序。
4.创建盒须图
新建工作表,将“Sample ID”拖放至“标记”卡的详细信息中。再将“Sample Value”拖放至行,并右键单击该胶囊,将度量(总和)改为度量(平均值)。
单击右上角“智能推荐”,选择:盒须图。
5.创建仪表板
新建仪表板,将刚刚创建的两个工作表拖放至视图中。先拖放小提琴图,然后将盒须图悬浮在小提琴图之上,将盒须图的背景设置为:无,对齐轴距,调整颜色,最终结果如下。
今天的 Tableau 技巧,你 Get 到了吗?