雷达图(Radar Chart)的优势是能够表达多个指标的对比情况。之前,我们分享过雷达图的两种实现方法:巧妙绘制雷达图、简化实现雷达图。
用户提出新的需求:我想在同一个雷达图中呈现多个员工的各项指标情况,并且可以按需对他们的指标进行对比,有办法实现么?
可以的,这个需求是能实现的(如下图),今天我们来分享方法,一睹为快!
本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:可灵活对比的雷达图(Radar Chart)。
为方便学习,栗子使用自拟的简单数据源(如下图),来实现六边形雷达图。掌握栗子方法后,数据粉可尝试使用自己的数据实现其他多边形的雷达图。懒癌患者可通过以下链接获取栗子数据源:
https://www.dkmeco.com/cms/course/detail/623
具体步骤如下:
1、创建计算字段
打开 Tableau Desktop,连接栗子数据源,新建工作表。右键单击“数据”窗格空白处,在下拉菜单中选择:创建计算字段。依次创建如下计算字段:
➤ 计算字段:路径,此路径可更改科目在雷达图上的位置。键入函数:
CASE [科目]
WHEN '语文' THEN 1
WHEN '数学' THEN 2
WHEN '英语' THEN 3
WHEN '物理' THEN 4
WHEN '化学' THEN 5
WHEN '生物' THEN 6
ELSE 7
END
➤ 计算字段:角度,此公式为计算雷达图的“半径”与X轴的夹角,为计算点的坐标做准备。键入函数:
IF [路径] = 7 THEN PI()/2
ELSE PI()/2-(([路径])-1)*2*PI()/6
END
➤ 计算字段:得分,此处以100分为例,将分数平均分成5段,赋值1-5分,这决定了雷达图的圈数有5圈,一圈代表1分。键入函数:
IF [分数] >=0 AND [分数] < 20 THEN 1
ELSEIF [分数] >=20 AND [分数] < 40 THEN 2
ELSEIF [分数] >=40 AND [分数] < 60 THEN 3
ELSEIF [分数] >=60 AND [分数] < 80 THEN 4
ELSEIF [分数] >=80 THEN 5
END
➤ 计算字段:X,根据三角函数,计算出每个维度的X轴坐标。键入函数:
[得分]*COS([角度])
➤ 计算字段:Y,根据三角函数,计算出每个维度的Y轴坐标。键入函数:
[得分]*SIN([角度])
2、创建视图
将“标记”卡的标记类型改为:多边形。然后,将字段“科目”拖放至“标记”卡的详细信息中;将字段“路径”拖放至“标记”卡的路径中。
将计算字段“X”和“Y”分别拖放至列和行,分别右键单击这两个胶囊,在下拉菜单选择:度量(总和)-平均值。Tips:X、Y 的汇总方式可根据数据粉的实际业务情况去更改。
将字段“姓名”拖放筛选器,勾选一个或多个姓名。右键单击筛选器中的“姓名”胶囊,选择显示筛选器。
然后,将字段“姓名”拖放到“标记”卡的颜色中,单击颜色,设置不透明度。
如此,就实现了我们想要的雷达图!勾选右侧姓名代码,就可以查看每位学生在各科目中的表现或对比多个学生的表现了~
栗子 TIps
六边形雷达图的实现原理
- 涉及到的知识点是:三角函数。
- 上图中绘制了一个一圈的雷达图,其中六条呈放射性的线,我们称之为“半径”,要绘制一个完整的雷达图,就需要计算出各维度的坐标,如图中 A 的坐标。
- 在雷达图上作一个直角坐标系,注意,y 轴需与其中一个“半径”重合,此时“半径”与 x 轴形成一个夹角。
- 此时根据三角函数的余弦函数,可以得到:BC = AC×cosθ,已知AC = r,xA = BC,所以 A 点的 x 坐标值为:xA = r×cosθ。同理,根据三角函数的正弦函数,可得出A点的y坐标值为yA = r×sinθ。
本期的 Tableau 技巧,你 Get 到了吗?
文章部分信息来源于网络,如有侵权请告知