美文网首页
用Tableau画环形图系列(八)圆形棒棒糖图

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

作者: 扫地sir | 来源:发表于2019-10-15 15:55 被阅读0次

    最近看到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画环形图系列(八)圆形棒棒糖图

          本文链接:https://www.haomeiwen.com/subject/uldsmctx.html