本發(fā)明涉及層次化數(shù)據(jù)技術(shù)領(lǐng)域,尤其是涉及一種能夠在移動平臺上高效、快速地繪制矩形圖的層次化數(shù)據(jù)的動態(tài)多級矩形圖展示方法。
背景技術(shù):樹圖作為一種空間層次化數(shù)據(jù)的可視化展示方法,能夠充分地利用顯示屏空間,呈現(xiàn)大層次化的數(shù)據(jù),并通過其節(jié)點的大小、位置重點表現(xiàn)數(shù)據(jù)節(jié)點的量化屬性和分布關(guān)系。樹圖的布局算法是樹圖可視化方法的核心內(nèi)容,用于根據(jù)層次化數(shù)據(jù)的樹圖的層次結(jié)構(gòu)、節(jié)點權(quán)重和節(jié)點序列在二維的平面上畫出可視化圖形。但是,由于樹圖布局算法的遞歸特性,不能用于對層次化數(shù)據(jù)的動態(tài)展示。中國專利授權(quán)公開號:CN103106197A,授權(quán)公開日2011年11月9日,公開了一種層次化數(shù)據(jù)的展示方法及系統(tǒng),包括以下步驟:獲取節(jié)點定位請求;根據(jù)所述節(jié)點定位請求在層次化數(shù)據(jù)中查找目標(biāo)節(jié)點;以層級化方式和二維表格的方式展示所述查找到的目標(biāo)節(jié)點。該發(fā)明的不足之處是,功能單一,不能用于對層次化數(shù)據(jù)的動態(tài)展示。
技術(shù)實現(xiàn)要素:本發(fā)明的發(fā)明目的是為了克服現(xiàn)有技術(shù)中的展示方法的不能用于對層次化數(shù)據(jù)的動態(tài)展示的不足,提供了一種能夠在移動平臺上高效、快速地繪制矩形圖的層次化數(shù)據(jù)的動態(tài)多級矩形圖展示方法。為了實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種層次化數(shù)據(jù)的動態(tài)多級矩形圖展示方法,所述層次化數(shù)據(jù)存儲于移動平臺的CPU中,所述層次化數(shù)據(jù)呈樹圖狀分布,層次化數(shù)據(jù)包括若干個節(jié)點,每個節(jié)點包括1個量化屬性和若干個非量化屬性,value為量化屬性值;包括如下步驟:(1-1)CPU按照量化屬性值的降序?qū)ν瑢哟蔚乃泄?jié)點進行排序;所述移動平臺的顯示屏的寬度為WIDTH,高度為HEIGHT;(1-2)計算所有節(jié)點的量化屬性值和比例ratio;設(shè)定每個節(jié)點的量化屬性值為所述節(jié)點的所有子節(jié)點的量化屬性值value之和Sum,設(shè)定任一節(jié)點i的比例ratio為節(jié)點i的量化屬性值與同層次的所有節(jié)點的量化屬性值之和sum的比值,CPU計算所有節(jié)點的量化屬性值及比例ratio;(1-3)CPU將每層的所有節(jié)點分別放入數(shù)組A和數(shù)組B中:(1-3-1)CPU將量化屬性值最大的節(jié)點放入數(shù)組A,將其它節(jié)點放入數(shù)組B中;(1-4)CPU計算數(shù)組的矩形寬度、高度和最佳分割數(shù):(1-4-1)CPU計算數(shù)組A中所有節(jié)點的比例之和ratioA,并將ratioA設(shè)為數(shù)組A的比例;當(dāng)WIDTH<HEIGHT時,CPU設(shè)定數(shù)組A的矩形寬度為WIDTH,數(shù)組A的矩形高度為HEIGHT×ratioA;數(shù)組B的矩形寬度為WIDTH,數(shù)組B的矩形高度為HEIGHT(1-ratioA);設(shè)定判斷值當(dāng)WIDTH≥HEIGHT時,CPU設(shè)定數(shù)組A的矩形寬度為WIDTH×ratioA,數(shù)組A的矩形高度為HEIGHT;數(shù)組B的矩形寬度為WIDTH(1-ratioA),數(shù)組B的矩形高度為HEIGHT,設(shè)定判斷值(1-4-2)當(dāng)DIFF>0.5并且所有節(jié)點的數(shù)量>=3,設(shè)定最佳分割數(shù)為2,將數(shù)組B中的量化屬性值最大的節(jié)點移動到數(shù)組A中,轉(zhuǎn)入步驟(1-4-1);當(dāng)DIFF≤0.5,設(shè)定最佳分割數(shù)為1,轉(zhuǎn)入步驟(1-5);(1-5)當(dāng)數(shù)組A中的節(jié)點數(shù)量大于1時,返回步驟(1-3-1),將數(shù)組A中的所有節(jié)點分別放入2個1級子數(shù)組中,并計算各個數(shù)組的矩形寬度、高度和最佳分割數(shù);當(dāng)數(shù)組B中的節(jié)點數(shù)量大于1時,返回步驟(1-3-1),將數(shù)組B中的所有節(jié)點分別放入2個1級子數(shù)組中,并計算各個數(shù)組的矩形寬度、高度和最佳分割數(shù);當(dāng)i級子數(shù)組中的節(jié)點數(shù)量大于1時,返回步驟(1-3-1),將i級子數(shù)組中的所有節(jié)點分別放入2個i+1級子數(shù)組中,并計算各個數(shù)組的矩形寬度、高度和最佳分割數(shù),i≥1;(1-6)點擊顯示屏中節(jié)點對應(yīng)的位置,CPU按照所述節(jié)點的第一層子節(jié)點的數(shù)組的矩形高度、寬度和最佳分割數(shù)在顯示屏中繪制矩形圖。本發(fā)明中點擊顯示屏中節(jié)點對應(yīng)的位置,CPU按照所述節(jié)點的第一層子節(jié)點的數(shù)組的矩形高度、寬度和最佳分割數(shù)在顯示屏中繪制矩形圖,從而實現(xiàn)了動態(tài)展示。在樹圖中每個節(jié)點都以父親及其孩子節(jié)點層次化地表示。例如,某個節(jié)點包含以下屬性:大小(權(quán)重):表示該節(jié)點的大小或者在數(shù)據(jù)集中的權(quán)重??赡軘?shù)據(jù)文件的文件大小或者是某個產(chǎn)品的銷量,是量化屬性;標(biāo)簽(名稱):表示該節(jié)點的名稱作為標(biāo)簽,如服裝中的男裝,非量化屬性;父親:它指向該節(jié)點的父親節(jié)點,非量化屬性;孩子:該字段包含指向該節(jié)點的所有子節(jié)點的數(shù)組,非量化屬性;高度、寬度:矩形空間的高度和寬度影響其長寬比在其被繪制在顯示區(qū)域中。這些值通過節(jié)點的大小和顯示空間的高度與寬度計算所得;非量化屬性。本發(fā)明是一種基于上下文的層次布局算法,通過探索數(shù)組的矩形的長寬比更好地表現(xiàn)層次數(shù)據(jù),并且可以實現(xiàn)在移動平臺上的高效、快速繪制矩形圖。本發(fā)明是通過計算每個節(jié)點的量化屬性值在同一層次的所有節(jié)點的量化屬性總和中所占比例將顯示屏劃分成一個或者多個部分,在移動平臺上展示的分割矩形長寬比。作為優(yōu)選,所述步驟(1-6)中包括如下步驟:當(dāng)WIDTH<HEIGHT時,CPU控制數(shù)組A的矩形以顯示屏的(0,0)點為左上頂點繪制矩形。作為優(yōu)選,所述步驟(1-6)中還包括如下步驟:當(dāng)WIDTH≥HEIGHT時,CPU控制數(shù)組A的矩形以顯示屏的(0,0)點為左上頂點繪制矩形。作為優(yōu)選,步驟(1-6)后還包括如下步驟:CPU在每個矩形內(nèi)部填充不同顏色,相鄰矩形內(nèi)的顏色相近。本發(fā)明的移動平臺為安卓移動平臺。因此,本發(fā)明具有如下有益效果:(1)可以在移動平臺上高效、快速地繪制矩形圖;(2)可以對層次化數(shù)據(jù)展示動態(tài)多級矩形圖。附圖說明圖1是本發(fā)明的實施例的一種流程圖;圖2是本發(fā)明的層次化數(shù)據(jù)的樹圖;圖3是本發(fā)明的層次化數(shù)據(jù)的第二層動態(tài)數(shù)據(jù)展示圖。圖中:analytics1、animate2、data3、display4、flex5、physics6、query7、scale8、util9、vis10。具體實施方式下面結(jié)合附圖和具體實施方式對本發(fā)明做進一步的描述。如圖1所示的實施例是一種層次化數(shù)據(jù)的動態(tài)多級矩形圖展示方法,本實施例的顯示屏的WIDTH=1260像素,HEIGHT=696像素,如圖2所示,第二層節(jié)點包括節(jié)點analytics,animate,data,display,flex,physics,query,scale,util和vis,還包括第三層和第四層的各個節(jié)點。如圖1所示,包括如下步驟:步驟1,按照量化屬性值的降序?qū)λ泄?jié)點進行排序。降序排列結(jié)果如下:analytics,animate,data,display,flex,physics,query,scale,util,vis。步驟2,將第二層的所有的節(jié)點分成兩個數(shù)組:數(shù)組A和數(shù)組B。數(shù)組A中包含analytics,數(shù)組B中包含animate,data及其它所有節(jié)點。步驟3,計算最佳分割數(shù),數(shù)組A(即analytics)的初始WIDTH=1260,初始HEIGHT=696,計算得到數(shù)組A(即analytics)的比例=0.1996805118210864。根據(jù)公式當(dāng)WIDTH>HEIGHT時,width寬度WIDTHxratio=251.597445,height高度=HEIGHT=696。同時計算出變量DIFF根據(jù)公式可得,當(dāng)width>=height時,步驟4,由于DIFF滿足DIFF>0.5并且所有節(jié)點的數(shù)量>=3這個條件,返回最佳分割數(shù)為2,將數(shù)組B中的量化屬性值最大的節(jié)點(即節(jié)點animate)移動到數(shù)組A中,遞歸步驟3。詳細步驟如下:數(shù)組A(即analytics),數(shù)組B(即animate),計算得到數(shù)組A(即analytics)的比例=0.5263157894736842,根據(jù)公式當(dāng)WIDTH>HEIGHT時,width寬度WIDTHxratio=663.1578947368421,height高度=HEIGHT=696。同時計算出變量DIFF根據(jù)公式可得,當(dāng)width>=height時,步驟5,由于DIFF滿足DIFF<=0.5這個條件,返回最佳分割數(shù)為1,轉(zhuǎn)到步驟6。步驟6,矩形的分割數(shù)為1,繪制數(shù)組A(即analytics),數(shù)組B(即animate)的矩形圖。并采用上述方法繪制節(jié)點data、display、flex、physics、query、scale、util和vis的矩形圖。節(jié)點analytics1、animate2、data3、display4、flex5、physics6、query7、scale8、util9和vis10的矩形圖如圖3所示。應(yīng)理解,本實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。