用Tableau画环形图系列(八)圆形棒棒糖图

最近看到Tableau Public特别推荐里,有个Viz作品《Following Federer》介绍了网球巨星费德勒的职业生涯,这个作品中的圆形棒棒糖图特别吸引我。

https://public.tableau.com/zh-cn/gallery/following-federer?tab=viz-of-the-day&type=viz-of-the-day

仔细想了一下,实现这个图形并不复杂,这是我画环形系列文章第六篇《用Tableau画环形图系列(六)画柱状环形图》的一个变体,只要稍微修改一下,计算字段就可以实现了,非常的简单。如果你没有看过前面的文章,还请通过前面的文章复习一下基础知识,这里我只是简单介绍一下实现过程。

建立数据集

数据集并不难,index就是一个等差数据列,这里我取的1-50(当然也可以是时间或者其他),value就是随机的正负1(1往外发散,-1往内发散),in/out区分了内外环,0是内环,1是外环,这里的外环指的是有圆点的那层(特别要说的是,不管是往内发散,还是往外发散都是外环),category为的是区分颜色,我也是取的随机的1-3。

上下两部分,除了in/out有0和1的区别以外,其他都相同。

附赠一个excel随机生成正负1的公式=(-1)^INT(RAND()*2),方便大家自己构造数据。

创建计算字段

  • R=
IF  ATTR([in/out])= 0 THEN 1
ELSEIF  ATTR([in/out])= 1 then 
    IF ATTR([value])>0 then 1.2
    ELSEif ATTR([value])<0 then 0.8
    ELSE 0
    END
END
  • Angel=2 * PI()* (INDEX()-1) * (1/WINDOW_COUNT(COUNT([value])))

  • Sin=SIN([Angel])*[R]

  • Cos=COS([Angel])*[R]

开始做图

  • 把[Sin]和[Cos]分别拖到列和行功能区,取消聚合
  • 标记类型选择“线”,把[in/out]拖到“路径”
  • 把[index]拖到“详细信息”
  • 右键[Sin]和[Cos],表计算依据选择[index],操作正确后,可以得到下图
  • 在列功能区复制一个[Sin],标记类型选择“圆”,双轴并同步轴
  • 把[in/out]拖到标记区sin(2)里的“大小”上,就得到了下图
  • 将[category]拖到标记区全部里的“颜色”上,务必右键修改为“属性”或者“度量”(如果是维度会影响数据的详细级别造成错误,修改sin和cos的表计算,也可以解决),同时修改[category]为“离散”数据,编辑一下颜色即可得到下图

这样一个圆形棒棒糖图就做好了,是不是特别简单。

后面留个作业,如果想做成下图的发散图形,该怎么做?

(提示一下,这个更简单)

此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下

你可能感兴趣的:(用Tableau画环形图系列(八)圆形棒棒糖图)