tableau制作玫瑰图
在分析保险险种占比时,使用玫瑰图绝对是一个很好的选择。在本文记录一下自己制作过程中踩到的坑及解决办法。
操作流程
1、数据准备
解释:
1、第一列为扇形个数的标志,也就是第一列去重后有多少条记录,最终做出的图像就有多少扇形块;
2、第二列为同一扇形块下色彩的区分;
3、第三列为体现的指标值;
4、第四列为首位标记,首位标记的添加为将所有数据复制一遍后上下拼接,将原数据标记为0,复制粘贴的新数据标记为1。
2、path创建
新建参数:
命名为 间隙,用于后期调整各个扇形之间的空白大小,最大值取102,超过102扇形之间会出现重叠,其他设置见下图。
创建计算字段path:
iif([标记]=0,1,[间隙])
将path从度量转换为维度:
可右键path选择 ‘转换为维度’
也可直接拖动至维度
创建path数据桶:
右键path,选择创建->数据桶,参数设置如下
注意:数据桶大小设置为1
3、计算字段创建
(1)创建 edges 字段:
INDEX()
(2)创建 angle 字段:
([edges弧度1]-1)*(2*PI()/WINDOW_MAX([edges弧度1]))
(3)创建 count 字段:
INDEX()
(4)创建 number of slices 字段:
WINDOW_MAX([count扇形个数1])
(5)创建 radius 字段:
SQRT(AVG([数值])/PI())
(6)创建 index 字段:
INDEX()
(7)创建 X 字段:
IIF([index XY]=1 OR [index XY]=WINDOW_MAX([index XY]),0,WINDOW_MAX([radius半径])
*COS([angle弧度2]+((([index XY]-2)*WINDOW_MAX(2*PI())/([number of slices扇形个数2]*99)))))
(8)创建 Y 字段:
IIF([index XY]=1 OR [index XY]=WINDOW_MAX([index XY]),0,WINDOW_MAX([radius半径])
*sin([angle弧度2]+((([index XY]-2)*WINDOW_MAX(2*PI())/([number of slices扇形个数2]*99)))))
4、视图创建
把一类指标拖到颜色
把标记卡类型改成多边形
把path数据桶拖到标记卡的路径
把 X Y 分别拖到列和行
此时样子如下图
5、修改表计算
操作1:右键 X 胶囊,选择编辑表计算
操作2:X→特定维度→勾选Path(数据桶)
操作3:Index→特定维度→勾选Path(数据桶)
操作4:Angle→特定维度→勾选日期月
操作5:Edges→特定维度→勾选日期月
操作6:Number of Slices特定维度→勾选Path(数据桶)和日期月
操作7:Count→特定维度→勾选日期月
修改 Y 的表计算,步骤和上面一样
此时视图如下
6、间隙调整
此时视图基本完成,右击 参数:间隙,选择显示参数控件,我们可通过修改参数来调节扇形之间的间隙。