Tableau-南丁格尔玫瑰图

浏览: 5800

1510767-0ff7227ee438ec2b.png

看了些关于Tableau图表设计的资料,没有发现关于写南丁格尔玫瑰图的,就尝试写写这“缺失”的部分。

最开始接触玫瑰图是看数据信息图,比较著名的其中之一是玫瑰图,平时接触tableau比较多,就在好奇心的驱使下去探究怎么做出的。


使用场景

南丁格尔玫瑰图展示不同分类下数据的多少,如下图所示(转自极光数据报告)。(操作案例使用的是按年度时间的对比)


1.数据说明

Tableau实现南丁格尔玫瑰图时,需要增加一列【path】,数值为1和102

1510767-57464e5bba0e6680.png

2.计算字段

    2.1 维度

    对【path】字段创建数据桶

      1510767-59dffadc3c78901e.png

      效果如下:

      1510767-a681541d972db59b.png

      2.2 度量

      创建以下计算字段:

      【Angle】
      ([Edges]-1)(2PI()/WINDOW_MAX([Edges]))
      【Count】
      INDEX()
      【Edges】
      INDEX()
      【Index】
      INDEX()
      【Number of Slices】
      WINDOW_MAX([Count])
      【Radius】
      SQRT(AVG([Arrest ID])/PI())
      【sumArrest ID】 需要进行统计的数据字段,对[Arrest ID]进行去重计数后求窗口中最大
      WINDOW_MAX(COUNTD([Arrest ID]))
      【X】
      IIF([Index]=1 OR [Index]=WINDOW_MAX([Index]),0,
      WINDOW_MAX([Radius]) * COS([Angle]+
      ([Index]-2) * WINDOW_MAX(2 * PI())/([Number of Slices] * 99)))
      【Y】
      IIF([Index]=1 OR [Index]=WINDOW_MAX([Index]),0,
      WINDOW_MAX([Radius]) * SIN([Angle]+
      ([Index]-2)WINDOW_MAX(2 * PI())/([Number of Slices]99)))

      效果如下:

      1510767-dd84028c6a40483d.png

      3.结构设计

      3.1 基础设置

      将各个字段按下图所示,拖入相对应的位置上

      1510767-8548668219621688.png

      3.2 数据计算字段设置

      需要进行统计的数据字段【sumArrest ID】:

      1510767-15e94f6dbc228b30.jpg

      对【X】:

      1510767-c01f2226d4b09188.jpg

      鼠标放在【X】上会显示如下提示:

      1510767-047ad0af373b3118.jpg

      对【Y】:

      1510767-ce4fb39b8d1f0c96.jpg

      鼠标放在【Y】上会显示如下提示:

      1510767-bb1432660476178b.jpg



      以上结构设计基本完成,后续可以对图表颜色,提示等进行优化。

      4.注意事项

      • 需要最开始对数据进行设置,增加一列【path】,数据量相对于初始结构行数*2
      • 在进行对【X】,【Y】表计算时需要注意细节处理



      案例附件https://public.tableau.com/profile/dannyer520#!/vizhome/week-35-PlayerArrestsintheNationalFootballLeague/1_1

      简书地址:http://www.jianshu.com/c/678c4f6502ef

      推荐 9
      本文由 danny空 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
      转载、引用前需联系作者,并署名作者且注明文章出处。
      本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

      6 个评论

      不错,学习了,最近正在学习呢
      谢谢~
      hi, 可以说一下path增加一列怎么添加的,以及Arrest ID这里面是怎么写的吗
      1.【sumArrest ID】 :WINDOW_MAX(COUNTD([Arrest ID]))
      2.path字段是在基础结构中处理好的,比如在excel中就是自己新增一列,赋值为1和102,相对来说就是原有的基础数据行数*2
      3.tableau做极坐标之类的图时,大多数都要进行这样的字段预处理
      这样的图是怎么想出来的呢,看到一些怎么说呢,算是自定义实现的图吧,效果感觉很好,目前我没有这样的构想、思路,我该从何入手呢,请指教
      根据场景选择合适的图去表达,平时有看tableau public里面别人的作品,就琢磨了下怎么实现。
      这些图表都是基础表达,不同的是在不同的平台/技术间怎么实现问题。

      要回复文章请先登录注册