本系列导航
用Tableau画环形图系列(七)用Tableau画尖状环形图[翻译]
前段时间看Toan Hoang大神的博客,有个尖状环形图的例子很吸引我,于是就把这篇博客的主要内容翻译一下,以便大家学习。原文地址 http://toanhoang.com/tableau-pointed-rings/
数据:
1.创建数据桶:在path字段上右键,创建数据桶,数据桶大小为1
2.创建index计算字段:【index】=(INDEX()-1)*2(这个字段我理解,其实是扩充了path的大小,从270扩充到了540)
创建WC_pi计算字段:【WC_pi】=WINDOW_MAX(MAX(pi()))(试了一下直接用pi()也可以,因为是个常数,作者应该是方便表计算不出错,因为表计算不允许非聚合和聚合一同计算)
创建WC_start计算字段:【WC_start】=WINDOW_MAX(MAX([Start])),原文Note说可以使用rank函数来获取此值,这样它将更加动态并允许我执行sort之类的函数(其实这就是圆的半径,决定谁在内圈,谁在外圈)
创建WC_percentage计算字段:【WC_percentage】=WINDOW_MAX(MAX([Percentage]))(用这个字段来确定圆环相对于最长的270度的长短)
创建X字段:
IF [index]<270 then
SIN([index]*[WC_percentage]*[WC_pi]/180)*[WC_start]
elseif [index]>270 then
SIN((540-[index])*[WC_percentage]*[WC_pi]/180)*([WC_start]+1)
ELSE
SIN(([index]*[WC_percentage]+3)*[WC_pi]/180)*([WC_start]+0.5)
END
创建Y字段:
IF [index]<270 then
COS([index]*[WC_percentage]*[WC_pi]/180)*[WC_start]
elseif [index]>270 then
COS((540-[index])*[WC_percentage]*[WC_pi]/180)*([WC_start]+1)
ELSE
COS(([index]*[WC_percentage]+3)*[WC_pi]/180)*([WC_start]+0.5)
END
这里是最难理解的,我们先不往下讲,先把原理解释一下,看下图就明白了,就最长的圆环来说,红色270个点是一个圆环的内环,蓝色270个点是外环,绿色1个点是箭头的顶点,然后用多边形填充上。
填充好就成了下面的图,原理就是这样
接下来
创建Y2字段:【Y2】=[WC_start]+0.5
3.开始制作图形
1)把Path (数据桶)拖拽到详细信息标记上
2)把X拖到行功能区,Y拖到列功能区,并分别在X和Y上右键,都选择计算依据为Path (数据桶)
3)标记改为多边形
4)拖拽index字段到路径标记,并右键选择计算依据为Path (数据桶)
5)拖拽name字段到颜色标记
6)添加Y2到行功能区
在全部标记里右键index,选择计算依据为表横穿,
在行功能区右键Y2选择双轴
右键Y2轴,选择同步轴
然后全都没有了,哈哈(Do not panic because everything disappeared)
因为全部标记里会多出一个度量名称的颜色标记,把它移出去
然后到Y2标记区,把多边形选为圆形
剩下就是美化工作了,去掉轴,背景,添加标签,给圆形加边界,我做完的效果大概就是这个样子等等。
此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下