Tableau 探索式分析功能很是强大,各类功能组合彷佛有着无限的可能性。前端
今天笔者会分析这种探索式模型解题思路,一块儿看看这种探索式分析功能是如何作到的。git
要掌握探索式分析,先要掌握探索式分析背后的思惟模型。github
有分析意义的数据通常是表结构,即分为行与列,列定义了数据含义,行则构成了数据明细。微信
当咱们将数据做为 “原材料” 使用时,须要将这些明细数据封装为 “数据集” 的概念来理解,数据集概念中,数据就是一个个字段,对于字段,要理解 “维度” 与 “度量” 这两个概念。架构
维度是不能被计数的字段,通常为字符串或离散的值,用来描述数据的维度。框架
度量是能够被计数的字段,通常为数字、日期等连续的值,用来描述数据的量。工具
咱们首先要将数据集字段归类到维度与度量,才能提升数据分析的效率。数据分析就是从不一样维度下看度量值,先想清楚要看的是什么数据,好比销量仍是利润?这些字段都属于度量,而后想想要怎么看这些度量,是看总数、拆解到年看、仍是按地区看呢?这些字段都属于维度。3d
维度和度量是能够单独看的,若是单看维度,那只能看这个维度的明细,好比看 订单日期 这个字段:cdn
须要注意的时,维度与度量字段还能够分为 连续 与 离散 。排序
值是连续关系,即任意两个值之间能够计算差值。
值是离散关系,即任意两个值之间没法计算差值,没法以连续的方式去理解。
**通常来讲,维度字段都是离散的,度量字段都是连续的。**从字段类型意义上也能得出相同的结论:维度字段通常为字符串或日期类型,字符串类型都是离散的,度量字段通常为数字类型,数字天生就能够连续。
值得注意的是,连续与离散其实与字段类型、维度度量并没有关系,好比维度的日期字段就是可连续的,而就算是字符串类型,也能够以字符串长度等方式 “定义” 一种连续的计算方式。对数字类型的度量字段来讲,咱们也能够忽略数字之间的联系,将数字看待为字符串,这样数字之间就是离散的。
上图的 “离散方式看日期” 就是看维度的直观方式,但仍能够用 “连续方式看日期”:
离散方式下单看维度只有一条条数据,数据间并没有排序规则,而以连续方式看维度,维度就会以某种方式排序:好比上图以时间类型进行排序。此时展现方式也从表格切换为了柱状图,由于表格适合展现离散数据,柱状图的一根柱子就能够展现连续数据。
单看度量时,因为 度量要依附于维度展现,所以仅有度量时,只能看这个度量的 聚合 概念:
如上图所示,单看销量这个度量字段时,咱们只能将数据集中全部销量字段聚合在一块儿来看,但这种聚合方式也能够分红若干种计算类型 - 求和、平均值、中位数、计数、计数去重、最小值、最大值、方差等等:
这些能力之间都是 “正交” 的,即单看度量这一个字段,能够以这么多种类型进行计算,那么按维度拆分后,度量依然能够享受如上不一样的计算方式。
也能够用连续方式看度量:
与连续-维度不一样,连续-度量图形中除了最后一个值,其余过渡数值都是无效的,由于连续-度量只有一个值。连续-维度也要注意,因为以连续的方式画出图形,中间不存在的点也被 “无缝链接” 了。
数据之间也能够存在父子级关系,有父子级关系就能够进行上卷下钻了,这种父子级关系被称为 “层系字段”:
上图的 Orders 就是一个层系字段。层系字段是几个字段的排序组合,由上到下依次构成下钻关系,从下到上则是上卷的关系。
**只有维度字段才能有层系,**由于度量是不能被拆分的,只有维度才能够被拆分。
维度的拆分能够是有逻辑含义的,也能够是任意的。
有逻辑含义的层系
最典型有逻辑含义的层系字段就是时间了。一个好的 BI 系统识别到日期字段后,应该将拿到的日期字段进行归类,好比判断日期字段粒度到天,则自动生成一个日期层系字段,自动聚合到年,并容许用户随意切换:
若是数据集字段值精确到月,则层系只能最多展开到月。
日期层系的逻辑含义在于,年、季度、月、天这种下钻关系是自然从大到小的关系,符合天然理解。
任意层系
若是层系字段不表明日期,就只能以业务含义组合层系字段了。好比能够将层系按照 订单日期 -> 商品 ID -> 运货日期的方式组合:
这种下钻方式,能够看到每一个订单日期下有哪些商品,每一个商品分别运货日期是什么。
也能够按照商品 ID 拆分出不一样的订单日期与运货日期,这种层系组合方式就是以商品 ID 为主要视角:
能够看到,不一样思惟角度会按照不一样的方式组合层系。好比一家大公司要查看财务问题,维度有:BU、日期,度量有:销量。
那么有两种下钻方式:BU -> 日期、日期 -> BU。不管哪一种下钻方式,都能看到每一个 BU 按日期销量的明细,但 BU -> 日期 能看到每一个 BU 按日期聚合的总销量,而 日期 -> BU 能看到不一样日期按 BU 聚合的总销量,前者更易对比出 BU 之间差别,后者更易对比出日期之间的差别。
配置是探索式分析的入口,要理解分析模型首先得理解配置模型。
Table 主要配置分为行、列、标记与筛选。经过这四个配置区域能够组合成变幻无穷的数据洞察模型。既然如此,让咱们看看这种配置思路是什么,以及为什么这四种配置相互组合就能覆盖整个探索式分析场景?
咱们不须要考虑三维数据分析场景,由于三维透视的关系,图形丢失了精确大小关系,没有精度的数据是没有分析价值的。因为在二位平面中分析数据,大部分图表均可以用 “行、列” 方式进行配置。
也许有人会问,为何不用维度与度量替代行列呢?这是一个很好的问题,有数据分析经验的人会站在维度与度量角度思考问题,所以对于任意图表,只要配置维度、度量便可呀?笔者从三个方面说说本身的理解:
作探索式分析功能时,要跳出思惟定式:**为何条形图的纵轴不能放维度呢?**如上图所示,若是行拖拽了两个不一样的度量,那么能够出现两条线或者双轴图,但当拖拽一个维度一个度量时,能够对图表进行 分面 ,好比观察 2013 ~ 2016 年不一样顾客对销量的贡献。
表格类的行、图表类的纵轴。通常建议放置度量字段。
表格类的列、图表类的横轴。通常建议放置维度字段。
如上所示,不管行仍是列,均可以进行任意维度度量组合,且字段数量不限,并且能够在任何层级进行下钻。对图表来讲,多个维度时须要进行分面处理:
如上图所示,将列放置两个维度字段成为柱状图,那么横轴就要同时表示两个维度,如上图所示。若是横轴还有更多的维度,能够再不断对横轴进行拆分。
横轴(列)多维度字段的顺序也会影响图表的展示。上图最后一个字段是 Category 默认是离散的,因此这个离值就决定了图表使用柱状图,图表类型由维度周最后一个字段连续或离散决定。
好比咱们对调 Order Date 与 Category 会怎样?
咱们获得了三个不一样类目近 12 个月的趋势,之因此是折线图,由于图表的维度轴(列)是连续的。若是咱们对 Order Date 进行天级别的下钻:
能够看到,下钻功能本质上就是维度轴支持对多个维度字段拆分处理。只要图表支持了维度轴任意维度字段的分面展现,那么配置端就能够将下钻按照拖了多个字段的方式去理解了。
若是咱们将折线图切换为表格,会发生什么?
咱们会发现,本来存在于列的 Category 被自动挪到了行,本来存在于行的 Sales 被挪到了 “标记” 区域。在正式介绍 “标记” 区域前,先理解一下为什么会发生这种转变:
**表格类组件是双维度组件,折线图是单维度组件。**也就是表格的行与列都是维度,而折线图横轴做为维度后,纵轴就要做为度量。上面的例子中,折线图维度有两个字段,虽然经过分面方式渲染出来了,但当切换为支持双维度的表格后, 能够将多余的一个维度挪到表格组件另外一个维度区域中。
而表格行与列都是维度的状况下,单元格的值就须要用 “标记” 中文原本表示,所以原折线图的度量字段自动转移到了 “标记” 区域。
标记区域也采起字段拖拽的方式,即对字段进行标记。
标记区域分为 **颜色、大小、标签、详细信息、工具提示、路径。**标记正如其名,是做用于图表上的标记,即不会对图表框架有实质性影响的辅助标记信息。
对不一样图表来讲,影响最大的是行与列,它能决定用什么图表,如何拆分数据。而标记每每是改变图表中辅助性元素,好比文字或者颜色等等。
不影响任何图像显示,仅仅在提示信息中新增字段信息。
对图表来讲,指的是 Tooltip 提示信息增长对应的字段:
从上图能够看到,利润字段放在工具提示区域,则图表的 Tooltip 会新增利润这个字段的信息。值得关注的是,Tableau 全部图表都支持 Tooltip 包括表格:
这保证了配置统一,行为统一。
控制图表大小。
对于线图,控制线的粗细;对于气泡图控制气泡大小;对于柱状图控制柱子粗细;可是对面积图与表格没有明显做用。这得益于 Tableau 将每一个图表大小属性尽量抽象出来。
即直接展现在图表上的文本。
对普通图表来讲,文本体现为 Label,即直接展现在图表上的文字。好比柱状图默认是没有 Label 文字的,要将对应字段拖拽到文本标记上才会出现。
这体现出与普通报表构思的不一样。对普通报表来讲,Label 是经过一个勾选项开启的,Label 对应的值就是图表度量这个字段的值。而 Tableau 将标签值以字段方式开放拖拽,就有了展现与值分开的可能性,可适用范围更广。
有人以为长度和数字必定要对应上,这也是对数据理解不一样致使的。Tableau 将文本(标签)列在标记里,说明文本和颜色、大小同样,都是一种附加的信息展现维度,不少时候不须要两种方式展现同一种信息,反而须要图形以更多方式以不一样维度展现信息。
控制图表的颜色。
好比在度量为销量时,能够将利润做为颜色,甚至再将折扣做为文本,经过一个折线图同时看多种度量信息:
与之对比,咱们能够将利润放在右 Y 轴做为双轴图达到相同的效果:
标记就是为了在不增长行、列字段数量基础上,经过颜色、大小、标签、工具提示等维度展现出额外信息。
若是将度量拖拽到详细信息,会发现彻底没有做用。由于 “详细信息” 只有拖拽维度字段才生效。“详细信息” 实际上是用做下钻的,拖拽一个维度字段后,能够按照这个维度进行下钻。
如上图所示,将销售按照产品线拆解成三条线。但这三条线没法分辨,所以可使用颜色来拆分维度:
这样就能将拆解的内容按不一样颜色展现。所以, 对标记做用的字段若是是维度字段,且做用于颜色、大小、标签、详细信息时,会额外进行维度进行拆解,并对拆解后的内容进行颜色或大小区分。
相信读到这里会有个疑问:按照维度进行拆解与维度拖拽多个字段进行字段有什么区别?咱们试一下看看效果,将产品类目维度拖拽到销量所在的行,对销量进行销量维度的拆分:
能够看到,在行、列进行的多维度拆分使用的是分面策略,而在标记中对维度进行拆分使用的是单图表多轴方式来实现。
除此以外的区别在于,在标记进行的维度拆分默认做用于度量,而行列上的多维度拆分能够任意做用于维度或度量。
同时配置端要限制 能拆分的只有维度或离散状态的度量 ,也就是只有离散状态的字段能够被拆分。如上图所示,咱们不能将 Category 拖拽到 Sales 右侧,除非将 Sales 设置为离散类型。 Tips:Tables 对维度与度量分别分配了蓝色、绿色,当咱们将绿色度量字段设置为离散类型时,这个度量字段会变成蓝色,也就是看成了维度字段进行处理。
最后,标记区域不只能拖拽字段,还能够单击后修改详细配置,好比修改颜色详细配置:
或者对工具提示的 Tooltip 内容进行定制:
Tableau 将全部筛选条件都收敛到筛选器中,咱们能够经过拖拽字段的方式对某个字段进行筛选:
如上图所示,好比只看办公用品与科技产品。但其实除了这个通用功能以外,Tableau 还支持更强大的图表交互功能,即点击或圈选图表后,能够对选中的点(字段值)进行保留或排除:
当咱们选择排除这几个点时,会自动生成一份对维度字段的筛选条件排除掉选中日期,因此图表是彻底数据驱动的: 通常来讲
若是属性存在下钻关系会如何呢?不管是行列中对维度的下钻,仍是经过标记对维度进行了拆解,筛选都是对 字段层系 生效的:
如上图所示,对下钻后的字段进行筛选,那么筛选条件也会自动构造出临时的字段层系,并对这个临时层系进行筛选。 能够看到,咱们不只能在字段配置区动态组成层系字段,在筛选器中也能够生成临时层系进行筛选,咱们须要支持任意层系组合的字段,并做用于筛选器、行列,甚至是标记上。
顺带一提,咱们还能够对设置了筛选的字段层系组合拖拽到任意地方使用:
要处理这种场景,咱们须要让全部字段都拥有筛选能力,普通字段等于没有筛选条件,咱们也能够对一个包含了筛选条件的字段拖拽到任何位置做用。
刚才是对维度进行的筛选,有没有对度量进行筛选的场景呢?有,但咱们只能手动将度量字段拖拽到筛选器位置进行手动筛选:
若是咱们进行图表内的圈选操做,增长的筛选条件必定是按维度来的:
这么理解这一行为:维度是离散的,勾选操做能表达的含义有限,好比勾选折线图的某些点,如何知道咱们要勾选的是维度的那几个月,仍是度量的利润范围呢?
**因为最终勾选操做落地在点上,而不是区间上(连续值也不适合进行圈选),因此默认按对维度进行筛选是最准确的理解。**若是上图的操做意图中,你想勾选的不是 6~12 月的区间,而是销量在 13k ~ 45.5k,则须要手动拖拽利润字段,并精确输入筛选范围:
值得注意的是,对连续型度量进行筛选前,还可选择聚合方式:好比对求和的值进行范围筛选,或者对最大值进行范围筛选,功能十分强大。
图表是数据可视化的载体,只有数据与配置,没有各式各样的图表,很难产生直观的数据洞察。
能够说, 按照探索式分析的思路,当配置好数据与配置后,能够有多种可视化载体去展现这种配置信息。 好比行、列分别拖拽了日期与销量,那么折线图、表格、散点图、柱状图均可以知足需求,但若是行所在的字段是离散的,那么折线图、散点图就不适合了,这就须要图表推荐功能根据配置推荐合适的图形展现。
Tableau 内置的图表分为 N 大类 - 表格、地图、柱折面饼、散点/象限图 、以及直方图、盒须图、甘特图、靶心图等。可见分析数据,不须要太多种类可视化展示方式,但对于每一个图表组件来讲,都须要修炼深厚的内功,作好一个表格、折线图并不简单。
表格、地图、柱折面饼、散点/象限图等均可以用行与列描述基本架构:
在行或列存在多个维度字段时,图表要进行相应下钻。表格对于行下钻以下图所示:
**上图也能够理解为展现出 Order Date 与 Order ID 的明细数据,按照 Order Date 分组且列合并。**下钻就是一步步接近明细数据的过程,但目的不是为了看明细表,而是看某些维度下按其余维度拆分的详细信息。
图表下钻和表格思路是一致的:
对于维度轴多维度下钻,将每一个维度轴下钻到更细粒度。图表在行与列同时下钻时,与表格的表现稍有不一样。仅从轴来看拆解方式是相同的,内部展现了多套轴:
**能够认为,当行或列上最后一个字段为度量时,就会切换为图表展现,由于图表适合展现连续状态。**若是排除上图蓝色区域,剩下的区域就是个交叉表,交叉表只是行与列同时存在维度字段的场景,仅有行或列时就变成了普通表格;而图形的下钻和表格下钻机理相同,只是把 “单元格” 的文本换成了柱子或线。
**因此对任何图表的下钻,都是对轴的下钻,**相同的是单元格属性永远不会改变,表格的单元格是文本,图形单元格是图形,一个简单折线图能够理解为对总体行与列单元格进行 “连续打通”:
若是继续对行列添加维度进行下钻,实际上是对轴进行下钻。排除度量字段不看,就是一个交叉表的下钻过程,以下图所示蓝色框圈住的部分就是一组大的单元格:
因为最后一个字段是度量,所以在叶子结点的展开就不是表格模式的单元格,而是连续的线条了。
通过上面的总结,咱们要意识到,在探索式分析场景对行列的下钻,表格与图表的逻辑是通用的,实现时也要总体考虑。将轴功能抽离成通用部分来作,表格与图表的区别只是对最后一个字段单元格是离散处理仍是连续处理。
层系字段下钻与拖多个字段表现一致,但因为存在父子关系,所以在图表上能够展示出 “展开” “收起” 按钮,点击后并非对图表自己进行操做,而是发送一个事件对 “行” 进行操做,最后经过数据驱动完成展开或收起动做。
饼图就不适合行列,由于饼图是根据离散维度进行拆分,扇叶大小能够由一个度量字段决定,所以对饼图来讲,行就对应到 “颜色”、列就对应到新增的 “角度” 这个标记:
只有行配置的图形推荐用表格,但柱状图、折线图也能够支持这种状况,只要把横轴忽略便可:
从样式上来看没有横轴,其实这种状况是把全部维度的横轴都聚合后的表现。
咱们分别看看连续与离散做用于维度和度量时的区别。
图表要能适配对连续或离散值的处理。好比对销量来讲,若是切换为离散值,则当成字符串展现:
若是将销量切换为连续值,则单元格就要使用线条长度表明值的大小,即连续性的值要可以产生 “对比感”:
上图组件是表格,自己适合展现离散值,但能够看到对连续值展现作了适配。对于适合展现连续值的图形,则没法作离散适配:
好比这个柱状图,若是将销量切换为离散,则会自动切换到表格,由于对于双离散值用柱折面饼展现是无心义的。
如上图所示,就是维度使用了离散字段的例子,因为维度是离散的,所以使用柱状图展现,由于柱子间也是隔离的。
对于连续型字段做用于维度,默认适合散点图,由于散点图的行与列都是度量,适合做为默认推荐:
但能用散点图的就也能用线图, **当维度是连续日期字段时,适合用折线图而不是散点图。**由于日期虽然连续,但 自己不适合作比较 ,所以做为一种连续型维度展现比较合适;而散点图两个轴都适合连续型度量,所以不适合方日期这种连续型维度字段。
固然也具有将折线图随时切换为散点图的能力,但这种图形没有什么业务价值:
所以咱们对折线图进行标记:行适合连续型维度字段,对散点图进行标记:行列都适合连续型度量字段,就能够根据配置 实现推荐图表的功能。
除了饼图支持 “角度”、线图支持 “路径” 这些特殊标记外,全部图表都支持下面五种通用标记:“工具提示”、“大小”、“文本”、“颜色”、“详细信息”。
工具提示 比较简单,全部图表都支持鼠标 Hover 后弹出 Tooltip 便可,而且这个 Tooltip 容许自定义和拓展工具提示字段。
大小 则只有折、柱、散三种图支持,由于这三种图分别有能够描述的大小的线条粗细、柱子宽度、圆圈半径。
文本 对应柱折面饼的 Label、对应表格,矩形树状图,地图的 单元格内容。
颜色、详细信息 则比较特殊,下面详细说明:
拖拽已有字段到详细信息 - 没有任何效果:
由于自己就在看这个字段的详细信息,所以没有效果。
但若是拖拽已有字段到颜色,则能够根据数值大小或分类进行按颜色区分:
等于开启了图表筛选功能,当颜色筛选条件字段是连续型时,出现筛选滑块,是离散型时,出现图例:
若是拖拽字段不存在于行和列上,对于度量字段,会根据值进行颜色排序(度量拖拽到详细信息依然没有效果):
如上图所示,咱们能够从长度看利润,从颜色深度看销量。
若是拖拽字段不存在于行和列上,且是维度字段,则会先进行维度拆分,以后若是选择的是 “颜色” 标记区域,还会对同一组的拆分标记颜色区分。
因为标记区域对维度的拆分是不分行于列的,所以每一个图表会根据自身状况进行合适的拆分。
好比条形图若是按某个新维度拆分,则会采起 “堆积柱状图” 的策略:
若是是折线图,则会采起 “多条线” 的策略:
若是是散点图,只要将拆分后多出来的点打散出来便可。因为散点图的维度拆分不像折线图和柱状图能够分段,所以若是不采用按颜色打散,是没法分辨分组的:
之因此说探索式分析的复杂度很高,是由于其可能性公式为:
字段 x 离散连续 x 行列 x 行列下钻 x 标记种类 x 筛选 x 图表
这种组合的笛卡尔积几乎是无穷无尽的。
图表一些特定功能是隐藏在轴交互里的。拿折线图来讲,一共有 5 个拖拽交互位置,以下图所示:
通常这些区域是用来拖拽度量字段的,因此若是拖拽了维度字段过来,最终会被归类到行列或标记上。
维度拖拽到底部 1 区域等于替换列字段 :
维度拖拽到图表中 4 区域等于拖到了颜色标记 :
维度拖拽到左侧 3 区域等于对行进行下钻:
同理拖拽到最上面区域等于对列进行下钻。
让咱们看看拖拽度量时的状况。度量能拖拽的范围更多。好比拖拽到右轴 5 区域,则造成了双轴图:
拖拽到左侧 2 区域则表示在图中额外增长一个轴:
要注意的是,上图的行显示 “度量值”,这是个特殊的字段,并经过筛选器筛选出拖拽的两个字段 Profit 和 Sales。除了拖拽之外,还能够经过将左侧 “度量值” 字段直接拖入行实现:
如上图所示,将度量值放到行,并按度量名称进行颜色标记,就获得了拖拽度量到左侧 2 区域的效果。 这也说明了全部图表交互最终都是经过映射到配置完成,全部能拖拽的操做均可以经过配置配出来 。
对表格来讲,能拖拽的区域是行、列、单元格:
拖拽到行或列于拖拽到字段配置区域的行或列没有区别,拖拽到单元格等于拖拽到文本标记区域。经过图表于配置区域结合的方式,即使不彻底理解配置的人也能够经过将字段拖拽到图表上获得直观的操做感。
全部图表都支持点击、圈选的方式选中 “点”。对表格来讲,点就是单元格:
对柱状图来讲,点就是柱子:
对折线图来讲,点就是节点:
对饼图来讲,点就是扇叶:
全部的点被选中后都有基本高亮功能,最重要的是能对选中的点进行保留、排除、局部排序等等。
好比咱们能够对上图饼图选中的几个扇形区域进行从小到大排序:
咱们也能够排除某些点,这个在配置章节有提到过,这个操做最终将转化为新增筛选条件:
最后,选中状态在单图表中看似只有高亮效果,可是在多图表联动时,高亮的选中区域会组成一个临时的筛选条件,做用于全部相同数据集的图表,并对这些图表的筛选结果作高亮处理。
理解了探索模型对数据、配置、图表的理解,就能学会探索式思惟分析数据,对制做探索式 BI 也有借鉴意义。
若是你想参与讨论,请 点击这里,每周都有新的主题,周末或周一发布。前端精读 - 帮你筛选靠谱的内容。
关注 前端精读微信公众号
版权声明:自由转载-非商用-非衍生-保持署名(创意共享 3.0 许可证)