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 許可證)