近期着手了一个分析项目,在选取图表的时候,发现了跑道图。
找来了大佬的跑道图详细教程,按部就班写了出来,怎么都成不了跑道图,反而成了各种直线图。
为此,翻看了很多其它的教程,依旧一筹莫展。究其原因,学习有个循序渐进,圆都不会画,就想起跑,肯定跪倒在起跑线上。(很多大神的教程真的非常难看懂,因为很多对于初学者来说是未知的东西,大神直接一笔待过,步骤摆在那里,公式摆在那里,但是,你就是不知道其中有哪些是被省略的,哪些是你忽视的重要环节。)
这大概是全网最全的跑道图学习路径了,加油!
step1 画一个圆
每一度画一个点,画360个点,连起来就是一个圆。
数据准备:
point就是点的编号(0到360)。
tabluea中准备x,y,点的坐标。
x=sin(point*pi()/180)
y=cos(point*pi()/180)
sin(x) 是x 的正玄值。返回 -1.0 到 1.0 之间的值。
cos(x) 是x 的余弦值。返回 -1.0 到 1.0 之间的值。
两个函数中的X 都是指“弧度”而非“角度”,x计算公式为: 2*PI/360*角度。
计算圆上每个点的坐标:
假设一个圆的圆心坐标是(0,0),半径为1
则圆上每个点的X坐标=0+ sin(2*PI / 360*角度) * 1,
Y坐标=0 + cos(2*PI / 360*角度) *1
即以上公式。
tabluea上操作:
x放拖到行坐标,y拖到列坐标。且,均对x,y,取消聚合。
点击分析,取消聚合。默认就是一个圆,但是如果放大了看,其实还是圆点,还需要用point作为路径把圆点串联起来。
在标记里选‘’线‘’,point拖到路径。完成最终的圆。
step2:画同心圆
回顾上面,圆上每个点的X坐标=a + sin(2*PI / 360*角度) * r ;Y坐标=b + cos(2*PI / 360*角度) * r。
同心圆的(a,b)一样,只有半径r不一样。
数据准备:
准备两个表。
excel sheet1 放point表:
sheet2 放circle表(画五个同心圆,也即五个circle):
将excel连入tableau,用内连接连接两张表。(注意circle表在左边。)
添加x,y字段:
x=sin(point*pi()/180)*r
y=cos(point*pi()/180)*r
将x拖入行功能区,y拖入列功能区,分析里面取消聚合。
现在还显示是一个圆,把circle拖到颜色标签。
现在有5个同心圆,但是如果你放大了,其实还是圆点,还需要用point作为路径把圆点串联起来。
以上图还可以通过数据桶来实现。
step3:画环状条形图
环状条形图,也叫跑道图/玉块图的,英文名称是Radial Bar Chart。
也可以说是没有画全的圆环图。
这里只需要改变,point的值,画360度就是一圈,那么画半圆就180度,画四分之三就是270度。先来个270度的。原始数据point表中删除多余的point值。
其它步骤均与step2一样。(当然,最简便的方法是改一下原始point表,tabluea上刷新一下数据就可以了。)
图上所有的条形都一样长,如何调整?
按比例缩短或增加(一般都是按最外圈,最长环的比例缩短),因此circle表中增加一个%size字段(用%号就是强调比例,如果超过100%就是加长线条),来控制。
Tableau刷新数据以后,就得到了新的%size字段。
然后还要改造sin和cos字段。
环形图完成。
上述对sin和cos的计算进行修改,把每个坐标点之间的距离都缩短了,例如circle1是按10%缩小,还是270个点,但每个点的坐标都缩小到10%,270个点之间也变密,线也变短了。