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