举个栗子!Tableau 技巧(170):用旭日图 Sunburst Chart 呈现多层数据

本文主要是介绍举个栗子!Tableau 技巧(170):用旭日图 Sunburst Chart 呈现多层数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
旭日图又称太阳图,是一种饼图(或环形图)基础上的升级图表。旭日图既能像饼图一样展示数据各自的占比,还能直观的表达数据的层级和从属关系,呈现数据的构成情况。

旭日图中,每一层图表代表同一级别的数据占比。图表从内到外,对应的数据级别便从高到低,并且相邻两层是内外包含关系。

很多数据粉因为颜值关注到旭日图,希望它让数据分析更美观。其实,旭日图不仅仅是颜值担当,它在实际业务分析场景中,也是一种非常实用的分析图表。

图片

通过旭日图可以了解数据构成、还可以快速洞察业务。如何在 Tableau 中实现呢?今天来分享方法吧!

在这里插入图片描述

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:用旭日图 Sunburst Chart 呈现多层数据。

为方便学习,栗子使用 Tableau 自带的"示例-超市"数据源。掌握栗子方法后,数据粉可尝试使用自己的数据源。

---------------------------------------------------------------->>

具体步骤如下:

1、准备数据

首先,需要将 Tableau 自带的“示例-超市”数据源做一些调整,改成如下结构:

图片

打开“示例-超市” Excel 数据源,使用数据透视表得到地区、细分、类别、销售额的分层级汇总数据。再根据如下规则添加 Level 列:
IF(NOT(ISBLANK(C2)),3,IF(NOT(ISBLANK(B2)),2,1))

图片

然后,需要准备一个辅助数据源,结构如下:

图片

2、连接数据源

打开 Tableau Desktop,连接数据源。创建 link 计算连接“基础数据源”和“辅助数据源”。

图片

3、创建数据桶和计算字段

➤ 创建 Path 数据桶,如图设置:

图片

➤ 创建计算字段:Index,键入函数
INDEX()

图片

➤ 创建计算字段:Max-Level,键入函数
WINDOW_MAX(MAX([Level]))

图片

➤ 创建计算字段:Max-销售额,键入函数
WINDOW_MAX(MAX([销售额]))

图片

➤ 创建计算字段:Slice-Level,键入函数
WINDOW_MAX(MAX([Level]))

图片

➤ 创建计算字段:Slice-Size,键入函数
[Max-销售额]/WINDOW_SUM(IIF([Max-Level]=1,[Max-销售额]/203,0))

图片

➤ 创建计算字段:Edges,键入函数
IF [Max-Level]>LOOKUP([Max-Level],-1) THEN PREVIOUS_VALUE(0)

ELSEIF [Max-Level]<=LOOKUP([Max-Level],-1) THEN PREVIOUS_VALUE(0)+LOOKUP([Slice-Size],-1)

ELSE PREVIOUS_VALUE(0)

END

图片

➤ 创建计算字段:X,键入函数
IF([Index]<>WINDOW_MAX([Index]) AND [Index]>=(WINDOW_MAX([Index])+1)/2)

THEN

([Slice-Level]+5.8)

  • COS(WINDOW_MAX(2PI())[Edges]+

(WINDOW_MAX([Index])-([Index]+1))WINDOW_MAX(2PI())*[Slice-Size]/(((WINDOW_MAX([Index])-1)/2)-1))

ELSEIF([Index]=WINDOW_MAX([Index]) OR [Index]<(WINDOW_MAX([Index])+1)/2)

THEN

([Slice-Level] + 5)

  • COS(WINDOW_MAX(2PI())[Edges]+

(((IIF([Index]=WINDOW_MAX([Index]), 1,[Index])-1)WINDOW_MAX(2PI())*[Slice-Size]/((((WINDOW_MAX([Index])-1)/2)-1)))))

END

图片

➤ 创建计算字段:Y,键入函数
IF([Index]<>WINDOW_MAX([Index]) AND [Index]>=(WINDOW_MAX([Index])+1)/2)

THEN

([Slice-Level]+5.8)

  • SIN(WINDOW_MAX(2PI())[Edges]+

(WINDOW_MAX([Index])-([Index]+1))WINDOW_MAX(2PI())*[Slice-Size]/((((WINDOW_MAX([Index])-1)/2)-1)))

ELSEIF([Index]=WINDOW_MAX([Index]) OR [Index]<(WINDOW_MAX([Index])+1)/2)

THEN

([Slice-Level] + 5)

  • SIN(WINDOW_MAX(2PI())[Edges]+

(((IIF([Index]=WINDOW_MAX([Index]), 1,[Index])-1)WINDOW_MAX(2PI())*[Slice-Size]/(((WINDOW_MAX([Index])-1)/2)-1))))

END

图片

4、创建视图

在“数据”窗格,右键单击“Level”字段,在下拉菜单中选择:转换为维度。然后,将维度“区域”、“细分”、“类别”依次拖放至“标记”卡的详细信息中。

图片

将标记类型改为“ 多边形“,并将前面创建的“Path(数据桶)”拖放至“标记”卡的路径中,再将维度“Level”拖放至详细信息中。

图片

将计算字段“X”和“Y”分别拖放至列和行,右键单击列上的“X”胶囊,在下拉菜单中选择:编辑表计算。在弹出的对话框中,分别对 X、Index、Edges、Max-Level、Max-销售额、Slice-Size、Slice-Level 做如下表计算。相同的步骤,也对行上的“Y”字段进行设置。

1
图片

2

图片

3

图片

4

图片

5

图片

6

图片

7

图片

在“标记”卡中,将“地区”、“细分”和“类别”字段从详细信息切换成:颜色。再通过设置格式移除网格线和零值线,就得到了我们想要的旭日图。
图片

今天的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!

在这里插入图片描述

文章部分信息来源于网络,如有侵权请告知

这篇关于举个栗子!Tableau 技巧(170):用旭日图 Sunburst Chart 呈现多层数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210661

相关文章

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧