用Tableau画雷达图

作者: 扫地sir | 来源:发表于2018-11-23 14:44 被阅读502次

    一直想学画雷达图,但是网上的教程多数是通过连线来画的,需要前期处理数据,觉得有点麻烦,这两天在Tableau Public上发现一个Viz作品,用多边形画雷达图,优点很多,不需要先期处理数据,而且是自动计算角度,特别方便。连接直达

    自己学习以后,也对照着做了一个简单的示例(public直达),现在分享一下心得。

    需要2018.3的透明特性,所以需要注意版本。

    示例效果

    数据集就用pes2019的球员能力(数据地址)

    首先,引入数据并用透视表透视后几个字段,得到新的数据集

    数据透视表

    然后更改字段名为“能力”和“得分”,这样就构造好了数据集

    新数据集

    创建计算字段【Angle】= RUNNING_SUM((2*PI()) / MIN({COUNTD([能力])})) + (PI()/2)(这个就是原Viz作品中最巧妙的表计算,计算弧度值,反正我是不太明白)

    【R】=AVG([得分])

    【X】=[R]*COS([Angle])

    【Y】=[R]*sin([Angle])

    为什么要这几个字段,请参考我前面写的用Tablea画环形图系列。

    然后将【X】,【Y】拖入行列功能区(不需要取消聚合),选择多边形,路径用【Angle】,并将【能力】拖入详细信息,【姓名】拖入颜色,调整颜色的透明度,并取消掉背景中的线条。还要调整编辑X和Y轴,将轴范围固定在-100到100之间。

    效果如图

    接下来,原Viz作品中又一个巧妙的设计来了

    复制X轴,调整将标记设为圆形,大小调整到最小(几乎看不见)

    效果

    这个设计是为了显示标签,如果不增加这个轴标签显示就很混乱,因为堆叠在一起,同时还增加了两个字段来控制标签的显示

    增加计算字段

    【能力标签】= if WINDOW_COUNT(COUNTD([姓名]))=1 THEN attr([能力]) END

    【得分标签】=if WINDOW_COUNT(COUNTD([姓名]))<=2 THEN AVG([得分]) END

    这里要说一下作用,就是如果筛选器选了一项,就显示标签,如果选择多项就不显示标签,非常巧妙,如果你想有对比功能可以把=1改成<=2,这样选择2个筛选项也可以显示标签,(超过3个就显示比较乱了)

    将这两个字段拖入X(2)的标签项,更改一下表计算,计算依据改为【姓名】现在标签就可以隐藏了。

    选择双轴并同步轴,效果如下,通过筛选器,选择一个选项就有标签,多于2个选项,标签就没有了

    效果图

    接下来我们就要说背景图的制作了,你可以选择一个做好的背景图,直接通过地图背景图像加入这样比较省力,但是未必能找到合适的背景图像,我们可以通过以前的用Tableau画圆的知识,自己画背景,并通过2018.3的透明背景功能组合图表。

    首先画六边形背景,构造数据集,我们画4个同心六边形(原理请参考用Tableau画环形图系列(二)画同心圆

    创建计算字段

    【sin】=SIN([point]*PI()/180)*[R]*25

    【cos】=COS([point]*PI()/180)*[R]*25

    (这里×25因为是为了和上面的雷达图轴坐标一致,最后都是正负100的范围,如果画5个圆应该×20,自己体会一下)

    然后拖动【sin】和【cos】到行列功能区,这里一定要取消聚合(因为我们不是通过聚合计算的方式,与上面的不一样),选择标记为线,【point】为路径,拖入【圆环】为详细字段,调整一下颜色和大小,取消网格线,关键还要调整轴,X和Y轴都要固定到-100到100之间,就得到了4个同心六边形。

    同心六边形效果

    下面构造放射线具体原理请参考,用Tableau画环形图系列(六)画柱状环形图

    构造数据集

    创建计算字段

    【angle】=2 * PI()* (INDEX()-1) * (1/WINDOW_COUNT(COUNT([数值])))

    【R】=IIF(ATTR([内外环])= 0, 0, SUM([数值])/WINDOW_MAX(SUM([数值])))*100(×100也是为了保证轴的一致)

    【sin】=SIN([angle])*[R]

    【cos】=COS([angle])*[R]

    然后拖动【sin】和【cos】到行列功能区,也要取消聚合,选择标记为线,【内外环】为路径,拖入【线角度】为详细字段,【sin】和【cos】的表计算依据都为【线角度】,同样调整一下颜色和大小,取消网格线,关键还要调整轴,X和Y轴都要固定到-100到100之间。

    放射线效果

    自此3个工作表已经制作完毕,需要整合了

    新建仪表板,用浮动选项加入三个工作表,取消掉工作表的轴、表名等

    然后分把三个工作表的背景变透明,选中一个工作表,然后选设置格式的阴影,把工作表的阴影格式选为无(三个表都设为无)

    选择透明背景

    下面就是组合三个透明的工作表(可以到布局选项调整一下项分层结构),这样雷达图就在上面,背景在下面了。

    项目分层结构

    然后就是合并的关键,调整3个工作表的布局位置(数值可以自己根据情况填,但是3个表必需一样)

    布局调整

    这样就好了,三个工作表重叠了,雷达图在上面,选择时候也不会选到背景的图表

    然后通过筛选器就可以选择了,大家可以试一下,选择一个可以显示标签,选择2个就没有标签了。

    最终效果

    好了,结束了。

    相关文章

      网友评论

        本文标题:用Tableau画雷达图

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