最终效果图
自己可以修改一些细节设置
下面我介绍一下总体的做法
数据准备
Description Order Response
AWS 1 23.5
TensorFlow 2 28.4
Jupyter NoteBook 3 40.3
SQL 4 53.6
R 5 59.2
Python 6 76.3
打开excel建立一个文档SurveyData.csv
用tableau打开,建立一个并集,如下图:
创建各种计算字段
1创建计算字段path为-->IIF([Table Name]="SurveyData",1,271)
2给path创建数据桶,数据桶为1
3创建计算字段Precentage-->[Response]/76.3
4创建计算字段
wc_pi-->WINDOW_MAX(MAX(PI()))也可以是PI()
***pi()就是一个常数pi
index-->(INDEX()-1)*2
***INDEX()函数返回当前行的索引,那到底是哪一行呢?因为
计 算字段x的计算依据就是根据--->path数据桶(1,2,3,
4,,, 271),而且数据桶是不能用在计算里面的。
INDEX()函数就
相当于返回了(1,2,3,,,271)。
5创建计算字段
wc_precentage-->WINDOW_MAX(MAX([Precentage]))
就是旋转角度的大小(最大270度)
6创建计算字段
wc_start-->WINDOW_MAX(MAX([Order]))
[order]就是半径的大小(范围在1-6之间)
7创建计算字段
x-->
IF [index]<270 THEN
SIN([index]*[wc_precentage]*[wc_pi]/180)*[wc_start]
ELSEIF [index]>270 THEN
SIN((540-[index])*[wc_precentage]*[wc_pi]/180)*([wc_start]+1)
ELSE
SIN(([index]*[wc_precentage]+3)*[wc_pi]/180)*([wc_start]+0.5)
END
8创建计算字段
y-->
IF [index]<270 THEN
COS([index]*[wc_precentage]*[wc_pi]/180)*[wc_start]
ELSEIF [index]>270 THEN
cos((540-[index])*[wc_precentage]*[wc_pi]/180)*([wc_start]+1)
ELSE
cos(([index]*[wc_precentage]+3)*[wc_pi]/180)*([wc_start]+0.5)
END
上面就是计算了x,y点的坐标位置
9创建计算字段y2-->[wc_start]+0.5
[wc_start]+0.5就是确定圆心的位置,本来的y坐标1,2,3,4,5,6。
都变成1.5,2.5,3.5,4.5,5.5,6.5