用Tableau画南丁格尔玫瑰图(二)

2019-01-04  本文已影响81人  扫地sir

有了上一篇的基础我们就来真正画一个南丁格尔玫瑰图

我整理了一份数据集(百度网盘),大致就是下面这样。

Tableau引入数据,创建4组,8个计算字段(这里的path用了1-102,相应的X、Y的公式也和第一篇略有差别,效果就是半圆更平滑)

创建计算弧度的两个字段

【Edges】=INDEX()

【Angle】=([Edges]-1)*(2*PI()/WINDOW_MAX([Edges]))

创建计算扇形个数的两个字段

【Count】=INDEX()

【Number of Slices】=WINDOW_MAX([Count])

创建计算半径的字段

【Radius】=SQRT(AVG([Value])/PI())

创建X、Y相关字段

【Index】=INDEX()

【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)))))

首先把【X】、【Y】拖到行列功能区,然后将【Month】和【Cause】拖入标签的颜色和详细信息,选择多边形标记,【path数据桶】拖入路径。

下面是编辑表计算,例如X字段一共是6个表计算(X和Y一样)

【X】和【Index】计算依据选【path数据桶】(跟第一篇的一样)

【Edges】、【Angle】、【Count】表计算依据都选【Month】(也跟第一篇的一样)

只有【Number of Slices】表计算依据特殊,选两个

然后再手动调整一下【month】【Cause】的顺序和颜色,加个边界,大致就是这个样子了

特别要说明的一点是,wiki百科上的原图是这样的,1854年4月份只有灰色,但是实际上数据集里disease和other都是6,所以两个重叠,还有就是11月份没有棕色的,实际上11月份的other是有数据的,就算去调整【Cause】的排序也是没有办法。

原图

我调整了一下颜色的透明度,可以略微弥补一下,也可以用【Cause】的突出显示或者筛选之类的工具来做一些交互效果来弥补。(做好的效果

目前没有找到方法,网上有大神用饼图制作玫瑰图,解决了这个问题,但是实在太复杂,没看明白(public直达)。有兴趣的可以去研究一下

所以就目前这种方法,在应用中要注意的两个问题,以避免遮盖问题

1.保证同一个扇形内,数值都不一样。

2.保证同一个扇形内,各个小扇形的相对比例关系是不变的。

上一篇下一篇

猜你喜欢

热点阅读