針對時變層次數據的時變樹圖布局方法和應用
【技術領域】
[0001] 本發(fā)明屬于信息可視化領域,具體涉及針對時變層次數據的時變樹圖布局方法和 應用。
【背景技術】
[0002] 在大數據時代背景下,如何通過有效的可視分析方法從海量數據中尋找到其中規(guī) 律,從而幫助用戶決策是當今大數據領域中的一個熱點話題。
[0003] 層次數據一直是可視化領域中的一個重點研究對象,經典的層次數據可視化算法 有節(jié)點-鏈接、樹圖和放射環(huán)等,其中樹圖方法已經在生理分析、圖片展示和經濟狀況分析 等各個領域之中有所應用。樹圖布局算法最早于1993年由Johnson等提出,其針對節(jié)點鏈 接方法中存在的節(jié)點覆蓋和空間利用率低的缺點提出了填充式布局算法Slice and Dice。 而為了解決Slice and Dice中細長矩形數量過多、用戶難以識別的問題,Mark Burls等于 1999年提出了 Squarified算法,使用Squarified布局算法能夠得到很好的平均長寬比,但 是打亂了數據原本的順序。因此,為了使樹圖的布局能夠讓用戶方便快捷地沿節(jié)點順序找 到相應在樹圖中的布局位置,Bederson等于2002年提出了 Strip算法,Tu等于2007提出了 Spiral方法,對Strip方法進行了優(yōu)化,使節(jié)點在樹圖布局中保持連續(xù)。為了使樹圖布局算 法能夠讓具有地理信息的數據進行應用,Wood等人于2009年提出了 Ordered-Squarified。 Thomas等于2012年對樹圖布局算法進行了歸納總結,將影響樹圖布局算法中布局的變量 歸納為以下5個:0rder、Size、Chunk、Recurse和Phrase,用戶可通過對這五個變量的自定 義設置改變樹圖布局的情況。
[0004] 然而,現(xiàn)實生活所產生的數據往往包含多種屬性,例如經采集后的數據往往是攜 帶有時間屬性的,而在數據挖掘和數據分析過程中,對時間屬性的處理也是一個不可忽視 的環(huán)節(jié),目前具有時間維度屬性的數據的可視化算法主要包括主題河流、熱力圖和矢量圖 等。時變布局算法可以分為兩個類別:按時間軸布局和動態(tài)變化布局。最常見的方法是使用 軸長來表示時間的變化,每一個刻度代表一個時間段,然后在該刻度上通過高度、形狀、顏 色和文本顯示等標識數據的其它屬性;將數據的時間屬性使用橫軸表示,然后使用改進的 流程圖表示事件其它相關屬性的Outflow ;對平行坐標進行優(yōu)化,采用引入時間軸概念的 Time Wheel ;在文本可視化中使用引入時間元素的Theme River或螺旋狀時間軸的Helix glyphs。而動態(tài)變化的布局方式則是通過在圖上對海量數據進行快速變化顯示,使整個顯 示效果在視覺感知中以動態(tài)的形式展現(xiàn)出來,包括以高亮和顏色深淺表示量的大小的熱力 圖,以及以線條為基礎隨時間發(fā)生變化的矢量圖。
[0005] 綜上所述,現(xiàn)有的樹圖布局算法和時變布局算法均從不同角度實現(xiàn)了對數據的良 好可視化展示,在不同評價指標方面也各有良好的表現(xiàn)。但是,針對時變層次數據(同時具 備層次和時間兩個維度屬性的數據)進行可視化,如采用現(xiàn)有樹圖算法對布局中相同的節(jié) 點進行跟蹤時,仍需要耗費較多時間,還不能實現(xiàn)在保留樹圖層次的同時精確、快速地描述 節(jié)點的變化情況。
【發(fā)明內容】
[0006] 為了克服上述現(xiàn)有技術的不足,本發(fā)明提供一種針對時變層次數據的時變樹圖布 局方法Treemap array along timeline (TAT),能夠針對同時具有時變和層次屬性的數據 進行可視分析,保證生成的樹圖在保留樹圖可視化層次并凸顯節(jié)點值大小的同時又具備時 間屬性顯示能力,解決時變數據在樹圖布局中查找時間過長的問題。
[0007] 本發(fā)明提供的技術方案是:
[0008] -種針對時變層次數據的時變樹圖布局方法,所述時變層次數據是一組具有權值 隨時間發(fā)生變化的時變性質的通過層次結構關系互相關聯(lián)的層次數據;針對待顯示的時變 層次數據集(用DS表示)進行可視化處理,具體操作步驟如下:
[0009] A.將待可視化數據集DS按照層次和時間關系表示為K棵樹;對于時刻k下的樹 (或子樹)根節(jié)點,記為(tk,root);
[0010] 對于時刻k下的樹(或子樹)根節(jié)點,記為(tk,root),其中tk代表時刻k,相應 的父節(jié)點fatheri記為(tk,fatheri),fatheri的子節(jié)點記為(tk,childi j),如圖2所示, 每個節(jié)點對應的權值以value表示,圖2中灰色節(jié)點表示該節(jié)點的權值發(fā)生了改變。
[0011] 表示成樹的數目具體根據實際需要對比的節(jié)點變化時刻來確定,例如,若需要比 較時刻T1、時刻T2、時刻T3和時刻T4的同一節(jié)點的變化情況,則對應4個時刻將數據表示 為4棵樹;每棵樹都是一個嵌套層次關系,樹圖層次以嵌套布局表示:若根節(jié)點A有子節(jié)點 B,則樹圖布局時B要在A的樹圖布局區(qū)域內,若B和C是同一個根節(jié)點A的兄弟則B和C 都在A的范圍內布局,但是A和B不互相嵌套。
[0012] B.將不同時刻的根節(jié)點(tk,root)從左到右在時間軸上按順序進行排列布局;
[0013] 將每個時刻的原始布局區(qū)域設置為正方形(正方形比細長條形的矩形更易于識 別),其中正方形的面積與根節(jié)點的權值成正比,并通過計算確定每一個時刻對應填充區(qū)域 的正方形邊長,如圖3所示,顯示區(qū)域的y_由用戶自定義,在圖3中對應y _= R_,其中, 尺_為根節(jié)點權值最大的時刻在布局中所對應正方形的邊長;其余時刻的正方形邊長由式 1計算得到:
[0015] 式1中,R_為根節(jié)點權值最大的時刻在布局中所對應正方形的邊長;RkS其余時 刻的正方形邊長;rootk. value為第k個根節(jié)點的權值;rootmax. value為權值最大的根節(jié)點 的權值。
[0016] C.采用行布局的方式,首先將(tk,r〇〇t)的孩子節(jié)點在對應區(qū)域內對第一行進行 布局,計算出最優(yōu)填充個數,并應用于所有時刻的該行布局中,完成第一行布局;
[0017] 由根節(jié)點至子節(jié)點的所有中間節(jié)點都進行樹圖層次遞進嵌套布局,為了便于在不 同時刻對樹圖中同一節(jié)點進行跟蹤,可引入節(jié)點位置屬性position (pi,qi),其中pi代表 行數,qi代表個數,且在樹圖布局中每一個節(jié)點的位置屬性唯一。采用此方法即可利用位 置行列號搜索到單個節(jié)點,實現(xiàn)快速跟蹤,如圖3所示。
[0018] D.對于同父節(jié)點下的其他孩子節(jié)點,重復執(zhí)行C的布局過程,依照緊靠上邊的原 則完成其他行的樹圖填充布局,直至該父節(jié)點下孩子節(jié)點均布局完畢。
[0019] E.對于樹結構中的所有節(jié)點,在葉子節(jié)點被布局完畢之前,重復C和D的布局步 驟。
[0020] 經過上述步驟的操作,即可完成對待顯示的整個數據集DS的時變樹圖布局。
[0021] 本發(fā)明方法中,每行布局的個數與所有需要布局時刻的節(jié)點相關,步驟C中所述 按行計算出最優(yōu)填充個數,并應用于所有時刻的該行布局中的具體操作步驟為:
[0022] C1.若對于當前布局的行數從第m個節(jié)點開始進行布局,節(jié)點m對應記作 childim,對應節(jié)點m每一個時刻的變化值為(tk,childim),其中k代表時刻。在其對應的 父節(jié)點(tk,fatheri)的布局空間內,依照緊靠上邊的原則,計算得出在不同時刻第一行節(jié) 點布局的各自的平均長寬比,并選擇最優(yōu)(取值最?。┢骄L寬比所對應的布局個數為各 時刻的最佳布局個數(tk,nk)。
[0023] 其中,平均長寬比的計算方法如下:設第i個子節(jié)點對應的矩形長寬比為六31,其 中ASi = Max (h ,則樹圖的平均長寬比AAR為其所有子節(jié)點長寬比的平均值,如式 2所示:
[0025] 式2中,ASi為第i個子節(jié)點對應的矩形長寬比;η為節(jié)點數目;AAR為樹圖的平均 長寬比,AAR的值越接近1,則該矩形越接近正方形,更有利于人眼識別及鼠標操作。
[0026] C2.在各個時刻(如圖3中的Τ1,Τ2和Τ3時刻)下,當填充個數沒有達到可填充 上限時,計算填充nk+Ι個節(jié)點后的平均長寬比。