LineUp:多屬性排序的可視分析

jopen 9年前發布 | 8K 次閱讀 LineUp 前端技術
 

前言

在我們的日常生活中經常會遇到各種各樣的排序列表,排序是將無序的數據項集合重組的普遍方式,它基于數據項的單個或多個屬性值為數據項計算一個排 名。多屬性排序是普遍存在的,在多屬性排序中,我們無法直觀理解單個屬性對排序所作得貢獻以及單個或多個屬性的變動是如何影響排序的。

具體來說多屬性排序可視化工具需要解決的問題為:

  1. 當詮釋一組排序時,我們想知道為什么一個數據項的排名比其他項要低(高),是因為它的所有屬性值都低(高)還是因為它的某個屬性值較低(高)。
  2. 如何使得不同類型的屬性之間具有可比性,并且組合在一起產生一個排名。
  3. 如何比較同一個數據項的不同排名,如修改一個數據項的屬性,它的排名會相應變化,我們希望比較這些變化的排名。
  4. 如果可以修改排序中單個或多個數據項的屬性,我們希望探究屬性值改變所產生的效果。

在這篇文章中將介紹對多屬性排序可視化的需求所作的全面分析,以及全新的多屬性組合排序可視分析技術LineUp的設計與實現。

多屬性排序可視化的需求

  1. 排名的可視編碼:可視化的用戶能夠快速地理解單個數據項的排名。
  2. 排名由來的可視編碼:也就是將排名所依賴的屬性值進行編碼,
  3. 支持多重屬性:支持基于多重屬性的排序,允許用戶將任意的幾個屬性組合,從而產生一個綜合的排名。
  4. 支持過濾:用戶可以過濾出滿足特定條件的數據項。
  5. 屬性值的標準化:數據項的屬性可以是不同類型的(數值型或有序型)、不同規模的(0到1之間或無限的)、不同語意的(對有的屬性來說值越高越 好,然而對于其他屬性來說可能值越低越好)。因此排序可視化必須允許用戶靈活地將屬性值進行標準化,如將其映射到0到1之間,從而獲得一個標準化的分數。
  6. 適應任務的可擴展性:當數據量以及屬性個數改變時,該可視化技術也能很好地工作。
  7. 處理缺失值:現實世界中的數據集大多是不完整的,因此一個精心設計的可視化技術,應該包含處理缺失值的方法。
  8. 交互的改進以及可視反饋:排序可視化要確保用戶能夠動態地增加和刪除屬性、修改屬性組合、改變屬性的權重、以及屬性的映射,并且能夠以可視化的形式直觀地反映這種變化產生的效果。
  9. 排名驅動的屬性優化:優化屬性的值和權重以得到一個數據項的最佳排名,
  10. 比較多重排名:比較同一組數據對象的不同排名,如研究同一組大學過去十年內排名的變化。

多屬性排序可視化技術

LineUp是一種用來創建、可視化、探究多屬性數據項排序的交互技術,該技術基于不同形態的柱狀圖,本文以泰晤士報中前100強大學中的50強為例,如圖1,其中排名列顯示了數據項的排名;文本屬性列是對數據項的說明;–>

LineUp:多屬性排序的可視分析

圖1

<–數值屬性列以柱狀圖的形式編碼了屬性值的大小,并且在每一列的列頭不僅包含了屬性的名稱還包括屬性值分布的柱狀圖;組合屬性列是對數值屬性的組合,組合屬性列頭部的灰色柱狀圖表示組合屬性得分的分布情況。下面將詳細介紹基于上文提出的需求所實現的一些關鍵技術。

組合屬性

LineUp有兩種組合屬性的方式,分別是串行組合和并行組合。

串行組合中屬性的組合得分是單個屬性標準化值的加權求和,以堆疊柱狀圖編碼串行組合屬性,柱狀條的長度編碼了數據項的排名,柱狀條越長排名越靠 前,柱狀條中不同顏色的組成部分編碼了不同的屬性并且它的寬度編碼了屬性所占的權重,可以通過拖動改變不同組成成分所占的寬度或者雙擊列頭的百分比修改單 個屬性所占的權重,圖1 就是串行組合的方式。堆疊的柱狀圖使得用戶無法直觀地比較不同數據項的同一個屬性,因此LineUp實現了四種不同的對齊策略如圖2,其中(a)是經典的 堆疊柱狀圖,以第一個屬性作為基線;(b)是分叉的堆疊柱狀圖,可以以任意屬性作為基線;(c)是有序的堆疊柱狀圖,其中每一個柱狀條的不同組成成分按其 大小進行排序;(d)是全對其的柱狀圖,每一個屬性都有基線都是對其的。

LineUp:多屬性排序的可視分析

圖2

并行組合與串行組合不同,它的排名是由組合屬性中最大的標準化屬性值決定的,并且只有在選中某個數據項的情況下,組合屬性中對排名沒有貢獻的其他 屬性才會顯示出來,圖3是一個并行組合,其中的綠色柱狀條代表具有最大標準化屬性值的屬性,當選中某一個數據項時,其他屬性會在該屬性的上方顯示,如圖中 綠色柱狀條上方的紫色和黃色柱狀條,這些柱狀條是按其長度排序的,長度編碼了屬性值的大小。

LineUp:多屬性排序的可視分析

圖3

編碼排名的變化

當用戶交互地改變屬性的權重、設置過濾、創建或改善組合屬性,LineUp通過動畫過渡和顏色編碼提供數據項排名變化的可視反饋,如圖4,排名列的綠色編碼了同一數據項排名的上升,紅色編碼排名的下降。

LineUp:多屬性排序的可視分析

圖4

比較同一組數據項的不同排名

LineUp用水平斜線將同一數據項的不同排名連接在一起,以分析數據項排名的變化,圖4顯示的是分析兩組不同的排名,圖5顯示的是分析多組不同 的排名,其中連接的斜線被當作排名的分隔符。為了方便用戶追蹤所作的改變對排名的影響,LineUp可以生成單個屬性或組合屬性的快照,圖4左邊的部分就 是對右邊部分的一個快照,用戶可以修改快照中屬性的值和權重,將得到的排名與右邊的最初排名進行比較。

LineUp:多屬性排序的可視分析

圖5

屬性值的映射

屬性值的映射是指將數值屬性或有序屬性標準化到0-1區間的過程,LineUp提供了一種全新的可視數據映射編輯器,包括平行映射編輯器和正交映 射編輯器兩種形式。平行映射編輯器上方的柱狀圖表示標準化后值的分布,下方的柱狀圖表示原生屬性值的分布,用連線將其一一對應,圖7(a)是默認的映射; 圖7(b)通過移動原生屬性值的最大和最小值標記,將原生屬性值的某一范圍映射到0-1區間;圖7(c)表示的是絕對映射。正交映射編輯器水平方向的柱狀 圖表示原生屬性值的分布,垂直方向的柱狀圖表示標準化后值的分布,同樣是以連線的方式一一對應的,圖7(d)-(f)與圖7(a)-(c)的映射結果是一 樣的。

LineUp:多屬性排序的可視分析

圖6

總結

總的來說,LineUp是一種有效地創建、分析、比較多屬性排序的可視化技術,能夠解決多屬性排序的絕大多數需求。并且它是領域無關的,能夠解決不同領域的多屬性排序問題。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!