本發明涉及信息可視化領域,尤指一種基于螺旋圖的時間序列數據可視化方法。
背景技術:
人類的日常行為中,時間是無所不在的標尺。在當今數據劇增的時代,人們在活動中都產生著大量的數據,其中就包含涉及狀態變化的時間序列數據。人們往往希望從時間序列數據中得到數據隨著時間變化的模式,但是通過肉眼觀察大量數據是很難從中快速得到有效信息。
可視化將數據抽象為圖表的形式,幫助人們理解晦澀難懂的數據,并通過交互發現隱藏在數據中的知識。比較常見的可視化形式包括折線圖、圓餅圖、散點圖以及最近出現交互性比較強的桑基圖,樹圖等等。不同的可視化展現形式適用于不同特性的數據。可視化技術在展示時間序列數據已經取得了卓越的成果,例如曲線圖,主題河流,樹圖,螺旋圖等。其中螺旋圖是可視化中展示周期性時間序列數據的一種重要的形式。螺旋圖通過連續的螺旋線能夠展現數據在時間上的連續性以及不同時間周期上的變化規律,因此其在處理周期性連續數據領域得到了廣泛的應用。
階段性時間序列數據類型是一種比較特殊的數據類型,它描述了一個事件的狀態隨著時間的變化。一個事件從起始時間到結束時間,一共包含n個狀態,事件順序地從狀態1轉換到狀態n,從狀態i轉換到狀態i+1的過程稱為階段i,并且該過程存在多條可達路徑。對階段性時間序列數據可視化需要滿足以下要求:1.有效地展示狀態轉換過程中時間的變化;2.良好的交互,為用戶進行各個階段的路徑選擇提供決策支持;3.在有限的空間中展示可擴展的時間長度;4.保證數據可靠性的條件下滿足人們審美需求。
本發明所研究數據的重要特征是:狀態轉換之間的路徑耗時具有不確定性,而已有的可視化方法,如平行坐標、桑基圖等不能有效展示可擴展的時間軸。平行坐標與桑基圖,以一條時間軸表示一個狀態,狀態之間的連線表示可達路徑,那么當某個路線歷時很長時必然會導致與之相關的時間軸加長,這顯然不符合可視化簡潔美觀的審美要求。本發明提出的螺旋圖能較好解決這個問題。
螺旋圖廣泛應用于表示周期性變化的時間序列數據。在較早1998年Carils等給出了一種可視化周期性時間序列數據的新型可視化形式,并介紹了幾個螺旋可視化的實際應用。不同的可視化樣式可以以螺旋圖的樣式排列布局在圖表上,比如墨點圖,三維環圖,柱狀圖,這些實體的大小表示數值的大小。1999年Hewagamage等采用3D的螺旋形式在地理圖片上展示時空性數據。2001年Weber等關注使用線條與顏色對時序性數據編碼。當數據量較大時提出使用3D耳輪式螺旋展示數據。2002年Dragicevic等提出一種新型的可視化展示即將發生事件的方式——SpriaClock(螺旋時鐘),它結合了螺旋圖和時鐘表現形式,能較好展示時序發生的一系列事件。2005年Tominski等提出在3D地圖上展示3D耳輪螺旋圖,它針對3D地圖帶來的信息隱藏提出了隧道視圖查看更多耳輪螺旋圖隱藏的信息,并提出將耳輪螺旋圖進行顏色編碼展示多個變量的數據的編碼形式。2008年Tominski等提出使用TTPC編碼方式對螺旋圖顏色編碼,使得數值對于用戶更加清晰可辨。2012年Cheng等提出一種新穎的極平行坐標的方式可視化時間序列數據,并與傳統平行坐標進行比較。極平行坐標可以展示更多的坐標,而且可以有效地展示時間序列數據的周期性特征。
技術實現要素:
鑒于現有的可視化形式比如平行坐標和桑基圖,以及狀態轉換之間的路徑耗時具有不確定性,本發明的目的是提供了一種在有限的空間內有效、簡明顯示狀態轉換間路徑信息的方法——基于螺旋圖的時間序列數據可視化方法。
具體實施步驟如下所示:
一種基于螺旋圖的時間序列數據可視化方法,順序執行如下具體步驟:
步驟1:輸入具有狀態集S={s1,...si,...sn},和狀態間可達路徑集L={L1,...Li,...Ln-1}的階段性時間序列數據,其中,n為狀態數量,si表示第i個狀態,從狀態i轉換到狀態i+1的過程稱為階段i,Li表示階段i的可達路徑;
步驟2:根據狀態集S狀態屬性設計狀態圓環,包括狀態圓環半徑集R={r1,...ri,...rn},狀態圓環寬度arcWidth,狀態圓環顏色集Color={color1,...colori,...colorn};根據狀態周期T設計的狀態圓環坐標軸,其中,半徑集R中元素ri表示狀態si圓環的外半徑,Color集中的元素colori表示狀態si的顏色,狀態集S表現為一系列同心圓環,圓心為(xo,yo);
步驟3:根據路徑集L和狀態集S,采用橢圓子線條完成路徑的線路繪制,其中路徑集L中各個階段路徑包括以下屬性:路徑的起始時間startTime,到達時間arriveTime,經歷時間t。詳細操作步驟如下:
步驟3.1:根據每條路徑lik(i=1,2,...n-1;k=1,2,...pi;pi=|Li|)的起始時刻startTimeik,到達時刻arriveTimeik,得到位于狀態si圓環上的起始位置坐標為(Sxik,Syik),位于狀態si+1圓環的到達位置坐標為(Txik,Tyik);
步驟3.2:根據路徑lik的歷時tik,以及狀態圓環周期T,求得路徑螺旋線跨度Δradianik=(tik/T)*2π,并將路徑lik設計為由segmentik=(tik/T)*360段橢圓子線條構成;
步驟3.3:階段i半徑跨度Δri=ri+1-arcWidth-ri分成segmentik段,每段半徑跨度為Δrik=Δri/segmentik,則橢圓子線條segikj(j=1,2,...segmentik)的短半軸為aikj=ri+Δrik*(j-1),長半軸為bikj=ri+Δrik*j,且橢圓的圓心與狀態圓環圓心相同;
步驟3.4:根據以上步驟繪制路徑線條。
步驟4:路徑lik的類型映射到區間[0,1]中得到l_typeik,并將l_typeik作為一元函數y=kx+b的自變量,得到的y即為lik的顏色colorik;
步驟5:根據階段i中路徑lik與階段內其他路徑的交叉點個數crossNumik,利用長尾函數求得路徑的透明度transpik,其中crossNumik是自變量,transpik是因變量;
步驟6:進行交互設計。
采用這樣的處理,本發明方法使用一個圓環表示一個狀態,螺旋線表示狀態間可達路徑。該模型能夠在有限的空間中,在不增加時間軸長度的情況下,有效展示任意時間長度的路徑。采用基于長尾函數的透明度算法,根據一條路徑與其他路徑的交叉數,給每條路徑分配透明度,從而降低路徑交叉重疊帶來雜亂度,同時有效保留了數據信息。并提供了路徑的篩選,高亮,查看詳細信息,縮放等功能,實現了靈活的交互操作。
與現有技術相比,本發明的積極效果是:
一、現有表現時間序列的可視化方法不能確保狀態間的可達路徑表現在有限確定的空間內。而本發明將狀態設置為圓環形式,每個圓環的半徑都已確定,且狀態間可達的路徑確定在起始狀態圓環與終止狀態圓環之間的空間內,故可以處理任意時間長度的路徑顯示。
二、有限空間中展示較多的路徑曲線產生較多的交叉點,本發現使用基于長尾函數的透明度設置算法,可以有效減少交叉點的個數,并可以通過一些交互手段完整清晰顯示所有的可達路徑。
傳統的時間序列可視化方法,不能在有限的空間內顯示所有的路徑。而本發現基于螺旋圖的時間序列數據可視化方法可以高效地解決這個問題,并且能夠完整地展示所有需要信息,并保證了展示圖表的整潔和便捷性。
附圖說明
圖1是本發明主要步驟的工作框圖。
圖2是狀態si示例圖。
圖3是多個狀態可視化示例圖。
圖4是多個狀態轉換路徑可視化示例圖。
圖5是參數說明圖。
圖6是螺旋線透明度設置示例圖。
圖7是實驗結果最終數據展示的結果圖。
鑒于專利說明書附圖對彩色表達的限制,特作如下說明:
圖1中圓環顏色為colori;
圖2中圓環顏色的從內到外分別為color1,color2,color3;
圖3中階段1中螺旋線l1k顏色為圖2中color1到color2的過渡色;階段2中螺旋線l2k顏色為圖2中color2到color3的過渡色。
圖7中成都圓環顏色color1,西安圓環顏色color2,鄭州圓環顏色color3;成都到西安列車的顏色為color1與color2的過渡色;西安到鄭州列車的顏色為color2與color3的過渡色。
具體實施方式
具體實施步驟如下所示:
步驟1:輸入具有狀態集S={s1,...si,...sn},和狀態間可達路徑集L={L1,...Li,...Ln-1}的階段性時間序列數據,其中,n為狀態數量,si表示第i個狀態,從狀態i轉換到狀態i+1的過程稱為階段i,Li表示階段i的可達路徑;
步驟2:根據狀態集S的屬性設計狀態圓環,包括狀態圓環半徑集R={r1,...ri,...rn},狀態圓環寬度arcWidth,狀態圓環顏色集Color={color1,...colori,...colorn};根據狀態周期T設計的狀態圓環坐標軸,其中,半徑集R中元素ri表示狀態si圓環的外半徑,Color集中的元素colori表示狀態si的顏色,狀態集S表現為一序列同心圓環,圓心為(xo,yo);
步驟3:根據路徑集L和狀態集S,采用橢圓子線條完成路徑的線路繪制,其中路徑集L中各個階段中路徑包括以下屬性:路徑的起始時間startTime,到達時間arriveTime,經歷時間t。
階段i的一條可達路徑lik(起始時間startTimeik,到達時間arriveTimeik,歷時tik)的起始位置(Sxik,Syik)為到達位置(Txik,Tyik)為
路徑lik可視化為螺旋線形式,其由segmentik段子線條構成,每條子線條由一段橢圓弧segikj構成,每個橢圓弧的短半軸aikj=ri+Δrik*(j-1)和長半軸的bikj=ri+Δrik*j,segikj的終點位置(Txikj,Tyikj)即segik(j+1)的起始位置(Sxikj,Syikj)為其中Δaglik=Δradianik/segmentik。
步驟4:路徑lik類型映射到區間[0,1]中為l_typeik,并將l_typeik作為一元函數y=kx+b的自變量,得到因變量lik的顏色colorik。
由狀態si的顏色為colori,狀態si+1的顏色為colori+1,則可得到lik的顏色為colorik=(colori+1-colori)*l_typeik+colori。
步驟5:根據算法求得路徑lik和路徑lip是否交叉,可以求得階段i內路徑lik與其余路徑的交叉點的個數crossNumik,利用長尾函數求得路徑的透明度transpik。通過設置路徑的最大透明度transpMaxi,最小透明度transpMini,并求得階段i內路徑交叉點最大為crossNumMaxi,最小為crossNumMini,則
步驟6:進行交互設計,包括:分區段高亮顯示階段i內各個時間區間內的路徑,高亮顯示一條路徑并顯示路徑詳情。
本發明設計了一個能夠在有限的空間內有效顯示任意時間長度以及任意數量的路徑的方法,狀態間的路徑存在于狀態圓環之間,并根據路徑之間的交叉點個數,依據長尾函數判斷路徑的透明度改善大量路徑給用戶查看帶來的雜亂感。
為了驗證本發明的有效性,將基于螺旋圖的階段性時間序列可視化模型應用于中國鐵路數據,旨在為用戶選擇需要轉車的路線提供決策支持。
實驗數據來自中國鐵路售票網www.12306.cn,定義事件為從成都經西安到達鄭州的行程。則狀態集S為{成都,西安,鄭州},且l1k(k=1,2,...,11),l2k(k=1,2,...,68),即成都到西安有11班列車可達,西安到鄭州有68班列車可達。列車數據含有出發時間、到站時間、歷時,班次。根據列車數據的時間特性,狀態的周期設為24小時。特別地,在列車數據中,由于列車的發車時間在24小時中并不是均勻分布的,結合發車時間的分布情況與人們出行的習慣,將周期T分為每段時長為3小時的8段。