本文搬运并改编自国外Tableau大神原创文章Toan Hoang:知名Tableau大神,数据可视化自由职业者和Tableau Magic的创始人,萨尔萨舞教练,钢琴演奏者,技术爱好者和程序员。
今天搬运大佬的第二篇教程,旭日图,依照惯例,首先普及旭日图的使用场景,当你需要了解数据之间的层级关系,以及每种数据的占比时,旭日图将是你的不二选择。
最终效果
image.png配色像不像IronMan!!!
当大佬开始学习Tableau的时候,他对Bora Beran的博客中提到的在Tableau中如何建立旭日图的教程感到非常的惊讶和困惑。他完全不敢相信在Tableau中也可以制作旭日图(然后大佬自己就实现了- -),他希望有一天自己也可以在Tableau中制作它。
以下是Bora Beran教程的链接:https://boraberan.wordpress.com/2014/12/31/radial-treemaps-bar-charts-in-tableau
数据
首先,我们要下载数据源,并在Tableau中打开它。下载数据源链接:HERE
在本例中,我们将展示各个地区之间的层级关系以及对应值的大小~
计算字段
我们将创建Path(数据桶)字段如下:
- 右键Path字段
- 选择创建数据桶
- 在编辑数据桶窗口中,设置数据桶大小为1
- 点击确定
image.png
Path(数据桶)将允许我们使用表计算创建1-362的额外数据点
我们将创建以下计算字段~
Index:用来表示各个点
(INDEX()-1)*2
WC_PI:表计算用来表示PI
WINDOW_MAX(MAX(PI()))
WC_Value:用来表示每个分段的值
WINDOW_MAX(MAX([Value]))*2
WC_Max Distance:离中心点的距离最大值
WINDOW_MAX(MAX([Distance]))
WC_Min Distance:离中心点的距离最小值
WINDOW_MIN(MIN([Distance]))
WC_Starting Point:确定每个分段的起始位置
RUNNING_SUM([WC_Value])-[WC_Value]
X:用来绘制X轴点坐标
IF [Index] < 362 THEN
SIN((([Index] * [WC_Value])+([WC_Starting Point] * 360)) * [WC_PI] / 360) * [WC_Min Distance]
ELSE
SIN((((722-[Index]) * [WC_Value])+([WC_Starting Point] * 360)) * [WC_PI] / 360) * [WC_Max Distance]
END
Y:用来绘制Y轴点坐标
IF [Index] < 362 THEN
COS((([Index] * [WC_Value])+([WC_Starting Point] * 360)) * [WC_PI]/360)*[WC_Min Distance]
ELSE
COS((((722-[Index]) * [WC_Value])+([WC_Starting Point] * 360)) *[WC_PI]/360) * [WC_Max Distance]
END
以上就是全部的计算字段啦~现在我们开始建立工作表吧。
工作表
让我们开始拖动计算字段到工作表中:
- 拖动Path(数据桶)字段到详细标记选项卡上
- 拖动X到列上
- 右键X,设置计算依据为Path(数据桶)
- 拖动Y到行上
- 右键Y,设置计算依据为Path(数据桶)
- 修改标记类型为多边形
- 拖动Index到路径标记卡上
- 右键Index,设置计算依据为Path(数据桶)
- 拖动Label字段到颜色标记卡上
你将看到如下效果,可能不是我们想要的~
image.png
别慌,我们来调整一下~
-
右键X字段,点击编辑表计算
-
在WC_Value选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Min Distance选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Max Distance选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Starting Point选择特定维度
-
勾选Lablel
image.png
-
-
-
右键Y字段,点击编辑表计算
-
在WC_Value选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Min Distance选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Max Distance选择特定维度
- 勾选Lablel
- 勾选Path(数据桶)
- 确保Label在最上面
- 在重新启动间隔上,选择Label
image.png
-
在WC_Starting Point选择特定维度
-
勾选Lablel
image.png
-
-
一旦你完成了上述调整,你将看到如下效果:
image.png
你可以看到所有的东西都挤在一起啦!下一步,我们要对Labels进行排序。右键Label并按以下顺序手动排序:
- Europe
- Asia Pacific
- North America
- France
- United Kingdom
- Germany
- Spain
- Hong Kong
- Japan
- Singapore
- United States
-
Mexico
你将看到如下效果:
image.png
现在,你可以自由调整一下:
- 移除轴标题,网格线和零值线
- 修改颜色并添加白色边界线
- 添加工具提示
- 如果你喜欢深色模式,自行调整工作表阴影~
你将看到如下效果:
image.png
当然,你还可以再优化!
- 添加该工作表到仪表板中
- 创建另一个工作表,显示Label和Label的值,把它添加到仪表板中,并移动到旭日图的中心位置
- 使用仪表板动作,确保当你点击旭日图时,中间的工作表数据将同时被筛选。
image.png
结束
我希望你能喜欢这篇旭日图教程,并能用它解决具体的问题~
PS:Tableau小白搬运,欢迎关注,一起学习,一起交流~
网友评论