一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法
【專利摘要】本發(fā)明屬于信息可視化領(lǐng)域,具體涉及一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,用于可視化關(guān)聯(lián)層次數(shù)據(jù)。本發(fā)明先用基于力導(dǎo)向的節(jié)點-鏈接樹和基于放射環(huán)的空間填充樹分別可視化相互獨立的兩個層次數(shù)據(jù),然后通過直線將兩棵樹中具有關(guān)聯(lián)關(guān)系的節(jié)點連接起來,形成一個雙關(guān)聯(lián)樹。為減少邊交叉和視覺混亂現(xiàn)象,通過路徑繞行的布局優(yōu)化算法,引入了隱形圈的概念,用三次貝塞爾曲線取代直線優(yōu)化關(guān)系邊。本發(fā)明提出的針對兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,可同時展示兩類關(guān)聯(lián)層次數(shù)據(jù)中的層次關(guān)系和關(guān)聯(lián)關(guān)系,并有效減少視覺雜亂,幫助用戶查看數(shù)據(jù)間的關(guān)聯(lián)關(guān)系,有助于進一步的數(shù)據(jù)分析。
【專利說明】一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息可視化領(lǐng)域,具體涉及一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,用 于可視化關(guān)聯(lián)層次數(shù)據(jù)。
【背景技術(shù)】
[0002] 在現(xiàn)實工作和生活中,具有相互聯(lián)系的多個層次數(shù)據(jù)廣泛存在于食品安全、金融 信息和社會網(wǎng)絡(luò)等各領(lǐng)域中。
[0003] 層次數(shù)據(jù)是一組通過層次結(jié)構(gòu)關(guān)系互相關(guān)聯(lián)的數(shù)據(jù)。
[0004] 兩類關(guān)聯(lián)層次數(shù)據(jù)是指具有關(guān)聯(lián)關(guān)系的兩個層次數(shù)據(jù),包括:2個層次數(shù)據(jù)以及2 個層次數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系信息。
[0005] 如:在食品中農(nóng)藥殘留檢測數(shù)據(jù)就是一個兩類層次數(shù)據(jù)。食品中農(nóng)藥殘留檢測數(shù) 據(jù)中含有地域和農(nóng)藥分類信息兩個層次數(shù)據(jù),地域信息包括全國7個區(qū)域:華北、華東、華 南、華中、東北、西北和西南;區(qū)域下包含不同的?。皇∠掳?;市下包含區(qū)縣;區(qū)縣下包 含不同的超市,具有明顯的層次結(jié)構(gòu)。農(nóng)藥按照毒性程度可以分為4個類別:低毒、中毒、高 毒和劇毒;每種毒性下面又包含有多種農(nóng)藥,也具有層次結(jié)構(gòu)。不同超市的農(nóng)產(chǎn)品檢出農(nóng)藥 情況就是地域信息與農(nóng)藥信息之間的關(guān)聯(lián)關(guān)系。如何對兩類層次數(shù)據(jù)及其隱含的相互關(guān)聯(lián) 關(guān)系進行可視化和可視分析是一個亟待解決的問題。
[0006] 迄今為止,針對單個層次數(shù)據(jù)的可視化方法,已取得大量成果,其主要技術(shù)包括節(jié) 點-鏈接法(Node-Link)和空間填充法(Space-Filling)兩大類。
[0007] 節(jié)點-鏈接法是外觀上最接近樹型結(jié)構(gòu)的層次數(shù)據(jù)可視化方法,該方法采用節(jié)點 表示樹型結(jié)構(gòu)中的信息單元,用連線表示樹型結(jié)構(gòu)中的父子關(guān)系,可以直觀的展示層次結(jié) 構(gòu)。常見的有樹(Tree),雙曲樹(Hyperbolic Browser),徑向樹(Radial Tree)等??臻g 填充法的主要思想是將整個信息集合映射到一個區(qū)域,通過用矩形,正方形,扇形或是多 邊形等的嵌套填充來描述層次結(jié)構(gòu)。其中常見的方法有兩種:樹圖(Treemap)和放射環(huán) (Sunburst)〇
[0008] 此外,混合(Hybrid)布局算法在層次數(shù)據(jù)可視化方法中也逐漸發(fā)展起來,其主要 思想是將節(jié)點-鏈接、空間填充以及簡單的統(tǒng)計圖有效的結(jié)合起來,達到優(yōu)勢互補的效果。 Zhao S等人在2005年在文獻〈〈Elastic hierarchies:Combining treemaps and node-link diagrams》中提出將節(jié)點-鏈接和樹圖相結(jié)合,在有限的屏幕空間內(nèi),允許用戶對樹中任 何一個節(jié)點進行節(jié)點-鏈接和樹圖之間的切換顯示,可以高效查看各節(jié)點的信息屬性,用 以幫助用戶更好的了解樹圖中所攜帶的信息。該方法保留了節(jié)點-鏈接對層次結(jié)構(gòu)和樹 圖對節(jié)點權(quán)值的高表現(xiàn)性。Huang M L等人在2009年在文獻《Treemapbar:Visualizing additional dimensions of data in bar chart》中將樹圖嵌入到柱狀圖中,當柱狀圖的 密度增加時,可以使用表透鏡(TableLens)技術(shù)查看特定區(qū)域的細節(jié),優(yōu)化顯示空間的利 用率。2012年,Kobayashi A等人在文獻《Edge Equalized Treemaps》中利用樹圖和柱狀 圖的結(jié)合,將柱狀圖嵌入到樹圖中,柱狀圖的寬度相等。通過該方法,可以對數(shù)據(jù)進行比較。 對層次數(shù)據(jù)可視化的方法還有很多,但這些方法主要解決同一類層次數(shù)據(jù)的可視化和可視 分析問題,對兩類層次數(shù)據(jù)的可視分析問題較少涉及。
[0009] 因此,已公開的對層次數(shù)據(jù)進行可視化的方法并不能有效地解決兩類層次數(shù)據(jù)及 其關(guān)聯(lián)關(guān)系的可視分析。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明目的是提供一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法。本發(fā)明的基本思想是先 用基于力導(dǎo)向的節(jié)點-鏈接樹和基于放射環(huán)的空間填充樹分別可視化相互獨立的兩類層 次數(shù)據(jù),然后通過直線將兩棵樹中具有關(guān)聯(lián)關(guān)系的節(jié)點連接起來,形成一個雙關(guān)聯(lián)樹;為減 少邊交叉和視覺混亂現(xiàn)象,本發(fā)明通過路徑繞行的布局優(yōu)化算法,引入了隱形圈的概念,用 三次貝塞爾曲線取代直線優(yōu)化關(guān)系邊。
[0011] 本發(fā)明的目的是通過下述技術(shù)方案實現(xiàn)的。
[0012] 一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,所述兩類關(guān)聯(lián)層次數(shù)據(jù)包括:2個層次數(shù) 據(jù)以及2個層次數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系信息,其特征在于:其具體操作步驟為:
[0013] 步驟一、用兩個多叉樹分別存儲待可視化的兩類層次數(shù)據(jù)中的兩個層次數(shù)據(jù),兩 個多叉樹分別表示為多叉樹A和多叉樹B。所述多叉樹中的節(jié)點采用順序存儲結(jié)構(gòu)與鏈式 存儲結(jié)構(gòu)相結(jié)合的方法,具體為:采用鏈式存儲結(jié)構(gòu)按照自頂向下的順序存儲每一層次中 的第一個節(jié)點;對于同一層次中的節(jié)點采用順序存儲結(jié)構(gòu)。
[0014] 步驟二、對步驟一中得到的多叉樹A采用放射環(huán)(sunburst)算法生成空間填充布 局(layout of space-filling) 〇
[0015] 步驟三、對步驟一中得到的多叉樹B采用力導(dǎo)向(force-direct)算法生成節(jié) 點-鏈接布局(layout of node-link),并使節(jié)點-鏈接布局中的根節(jié)點位于步驟二中得到 的空間填充布局的根節(jié)點顯示區(qū)域的中心點(用符號〇表示)位置處,確保節(jié)點-鏈接布 局位于空間填充布局中的根節(jié)點顯示區(qū)域內(nèi)。
[0016] 步驟四、對兩類層次數(shù)據(jù)中的關(guān)聯(lián)關(guān)系進行可視化。具體為:
[0017] 步驟4. 1 :根據(jù)2個層次數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系信息,分別找到多叉樹A和多叉樹B 中有關(guān)聯(lián)關(guān)系的節(jié)點對,并在步驟三得到的視圖上將有關(guān)聯(lián)關(guān)系的節(jié)點對用直線段進行連 接,稱所述直線段為直線關(guān)系邊;多叉樹A和多叉樹B中有關(guān)聯(lián)關(guān)系的節(jié)點稱為關(guān)系節(jié)點。
[0018] 步驟4. 2 :重復(fù)步驟4. 1的操作,直至將2個層次數(shù)據(jù)之間的所有關(guān)聯(lián)關(guān)系信息均 用直線關(guān)系邊顯示在步驟三得到的視圖上,得到初步可視化結(jié)果。
[0019] 步驟五、對初步可視化結(jié)果進行路徑繞行處理,得到最終可視化結(jié)果。
[0020] 由于步驟4生成的初步可視化結(jié)果視覺雜亂較嚴重,因此對步驟4生成的初步可 視化結(jié)果進行路徑繞行處理。具體操作步驟為:
[0021] 步驟5. 1 :設(shè)置一個半徑為r,圓心位于點0的隱形圈,Γι < r < r2,其中,Γι是節(jié) 點-鏈接布局中距離根節(jié)點最遠的節(jié)點與根節(jié)點之間的距離;r 2是空間填充布局中根節(jié)點 顯示區(qū)域的半徑長度。
[0022] 步驟5. 2 :對步驟4生成的可視化結(jié)果中節(jié)點-鏈接布局中的所有關(guān)系節(jié)點依次 做以下處理,得到以當前關(guān)系節(jié)點為其中一個端點的直線關(guān)系邊經(jīng)過繞行處理后,在隱形 圈內(nèi)部的路徑,具體為:
[0023] 首先,找到當前關(guān)系節(jié)點(用符號NA表示)的父節(jié)點(用符號NB表示)和節(jié)點 NB的父節(jié)點(用符號NC表示);并計算通過節(jié)點NB和節(jié)點NC的直線的斜率,用符號kBC表 示。然后,過節(jié)點NA,做一條斜率為k B。的直線,該直線與步驟5. 1中所述隱形圈有2個交 點,分別計算節(jié)點NA到2個交點的距離,用符號D表示2個交點中距離節(jié)點NA近的交點。 最后,連接點NA和點D,線段NAD即為以當前關(guān)系節(jié)點為其中一個端點的直線關(guān)系邊經(jīng)過繞 行處理后,在隱形圈內(nèi)部的路徑。
[0024] 步驟5. 3 :對步驟4生成的可視化結(jié)果中節(jié)點-鏈接布局中的所有關(guān)系節(jié)點依次 做以下處理:
[0025] 首先,查看當前關(guān)系節(jié)點NA的直線關(guān)系邊的個數(shù),然后對當前關(guān)系節(jié)點NA的每條 直線關(guān)系邊做以下處理,得到每條直線關(guān)系邊經(jīng)過繞行處理后,在隱形圈外部的路徑,具體 為:
[0026] 步驟5. 3. 1 :當前關(guān)系節(jié)點NA的當前直線關(guān)系邊的兩個端點中,一個是點NA,另一 個用符號Sa表示;用直線連接節(jié)點D和節(jié)點Sa ;用符號W表示點D到點Sa的距離。
[0027] 步驟5. 3. 2 :如果W < 100,則直線段DSa即為當前直線關(guān)系邊經(jīng)過繞行處理后,在 隱形圈外部的路徑。
[0028] 步驟5. 3. 3 :如果W彡100,進行以下處理:
[0029] 步驟Al :對線段DSa六等分,用符號Pl表示從D點開始的第一等分點,用符號P2 表示從D點開始的第三等分點。將點P1和P 2作為3次貝塞爾曲線的2個控制點的初始位 置。
[0030] 步驟A2 :對3次貝塞爾曲線的2個控制點P1和P2沿與線段DSa垂直的方向進行 同方向移動,移動的距離用符號L'表示,其值可通過公式(1)計算得到;移動后的點分別用 P3和P4表示,點0到線段DSa的距離小于點0到線段P3P4的距離。
【權(quán)利要求】
1. 一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,所述兩類關(guān)聯(lián)層次數(shù)據(jù)包括:2個層次數(shù)據(jù) 以及2個層次數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系信息,其特征在于:其具體操作步驟為: 步驟一、用兩個多叉樹分別存儲待可視化的兩類層次數(shù)據(jù)中的兩個層次數(shù)據(jù),兩個多 叉樹分別表示為多叉樹A和多叉樹B;所述多叉樹中的節(jié)點采用順序存儲結(jié)構(gòu)與鏈式存儲 結(jié)構(gòu)相結(jié)合的方法,具體為:采用鏈式存儲結(jié)構(gòu)按照自頂向下的順序存儲每一層次中的第 一個節(jié)點;對于同一層次中的節(jié)點采用順序存儲結(jié)構(gòu); 步驟二、對步驟一中得到的多叉樹A采用放射環(huán)算法生成空間填充布局; 步驟三、對步驟一中得到的多叉樹B采用力導(dǎo)向算法生成節(jié)點-鏈接布局,并使節(jié) 點-鏈接布局中的根節(jié)點位于步驟二中得到的空間填充布局的根節(jié)點顯示區(qū)域的中心點〇 位置處,確保節(jié)點-鏈接布局位于空間填充布局中的根節(jié)點顯示區(qū)域內(nèi); 步驟四、對兩類層次數(shù)據(jù)中的關(guān)聯(lián)關(guān)系進行可視化;具體為: 步驟4. 1 :根據(jù)2個層次數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系信息,分別找到多叉樹A和多叉樹B中有 關(guān)聯(lián)關(guān)系的節(jié)點對,并在步驟三得到的視圖上將有關(guān)聯(lián)關(guān)系的節(jié)點對用直線段進行連接, 稱所述直線段為直線關(guān)系邊;多叉樹A和多叉樹B中有關(guān)聯(lián)關(guān)系的節(jié)點稱為關(guān)系節(jié)點; 步驟4.2 :重復(fù)步驟4. 1的操作,直至將2個層次數(shù)據(jù)之間的所有關(guān)聯(lián)關(guān)系信息均用直 線關(guān)系邊顯示在步驟三得到的視圖上,得到初步可視化結(jié)果。
2. 如權(quán)利要求1所示的一種兩類關(guān)聯(lián)層次數(shù)據(jù)的可視化方法,其特征在于:其還包括 步驟五對初步可視化結(jié)果進行路徑繞行處理,得到最終可視化結(jié)果;具體操作步驟為: 步驟5. 1 :設(shè)置一個半徑為r,圓心位于點O的隱形圈,& <r<r2,其中,是節(jié)點-鏈 接布局中距離根節(jié)點最遠的節(jié)點與根節(jié)點之間的距離;r2是空間填充布局中根節(jié)點顯示區(qū) 域的半徑長度; 步驟5. 2 :對步驟4生成的可視化結(jié)果中節(jié)點-鏈接布局中的所有關(guān)系節(jié)點依次做以 下處理,得到以當前關(guān)系節(jié)點為其中一個端點的直線關(guān)系邊經(jīng)過繞行處理后,在隱形圈內(nèi) 部的路徑,具體為: 首先,找到當前關(guān)系節(jié)點NA的父節(jié)點NB和節(jié)點NB的父節(jié)點NC;并計算通過節(jié)點NB和 節(jié)點NC的直線的斜率,用符號kB。表示;然后,過節(jié)點NA,做一條斜率為kB。的直線,該直線 與步驟5. 1中所述隱形圈有2個交點,分別計算節(jié)點NA到2個交點的距離,用符號D表示 2個交點中距離節(jié)點NA近的交點;最后,連接點NA和點D,線段NAD即為以當前關(guān)系節(jié)點為 其中一個端點的直線關(guān)系邊經(jīng)過繞行處理后,在隱形圈內(nèi)部的路徑; 步驟5. 3 :對步驟4生成的可視化結(jié)果中節(jié)點-鏈接布局中的所有關(guān)系節(jié)點依次做以 下處理: 首先,查看當前關(guān)系節(jié)點NA的直線關(guān)系邊的個數(shù),然后對當前關(guān)系節(jié)點NA的每條直線 關(guān)系邊做以下處理,得到每條直線關(guān)系邊經(jīng)過繞行處理后,在隱形圈外部的路徑,具體為: 步驟5. 3. 1 :當前關(guān)系節(jié)點NA的當前直線關(guān)系邊的兩個端點中,一個是點NA,另一個用 符號Sa表示;用直線連接節(jié)點D和節(jié)點Sa;用符號W表示點D到點Sa的距離; 步驟5.3.2 :如果W< 100,則直線段DSa即為當前直線關(guān)系邊經(jīng)過繞行處理后,在隱形 圈外部的路徑; 步驟5. 3. 3:如果W彡100,進行以下處理: 步驟Al:對線段DSa六等分,用符號Pl表示從D點開始的第一等分點,用符號P2表示 從D點開始的第三等分點;將點P1和P2作為3次貝塞爾曲線的2個控制點的初始位置; 步驟A2 :對3次貝塞爾曲線的2個控制點P1和P2沿與線段DSa垂直的方向進行同方 向移動,移動的距離用符號J表示,其值可通過公式(1)計算得到;移動后的點分別用己和 P4表示,點O到線段DSa的距離小于點O到線段P3P4的距離;
其中,L表示點O到線段DSa的距離; 步驟A3 :以D為初始位置,以點P3和P4為控制點,以Sa為終點做一條3次貝塞爾曲 線,得到當前直線關(guān)系邊經(jīng)過繞行處理后,在隱形圈外部的路徑; 經(jīng)過上述步驟的操作,即可完成路徑繞行處理,得到最終可視化結(jié)果。
【文檔編號】G06F17/30GK104462204SQ201410608209
【公開日】2015年3月25日 申請日期:2014年11月3日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】陳誼, 張鑫躍, 馮玉超, 陳紅倩 申請人:北京工商大學(xué)