論文閱讀 | Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models i

1. Introduction

程序員編寫的可視化圖表與專家眼中的設計標準總存在差距。咱們沒法每次都向可視化專家諮詢設計上的意見,因此咱們需求將設計標準,研究成果應用於自動化設計工具的正式框架,這些工具備助於對於推薦數據的合理編碼和正確的視覺探索方式。咱們建議將可視化設計標準建模爲約束的集合,並結合從實驗數據中學習到的軟約束的權重,使用求解器把理論設計知識具體的,可擴展和可測試的表達出來的系統。咱們使用Draco實現了咱們的想法,Draco是一個基於答案集編程(ASP)的基於約束的系統。本文的貢獻能夠歸納爲如下三點:git

  • 本文提出了一種自動化可視設計的規範框架 ,使用一些設計規範來幫助用戶製做好的可視化設計
  • 本文將可視化設計建模爲約束條件進行最優化求解,有些約束條件是硬性條件(必須知足),有些是軟性條件(帶有懲罰)
  • 本文基於Clingo,這是一種基於答案集編程(ASP)的求解器,還有Vega-Lite, 這是一種json化的可視化圖表語法

Visual Encoding Principles程序員

可視化設計標準定義了在可視化圖表當中最基本的概念,mark是可視化中的基本圖形元素,channel是表達數據的方式和頻道。比方說一張折線圖,它的mark是線段,channel是位置(高低)。github


除此以外,可視化還將數據類型data定義爲:continuous(數值型,10英尺,23歲),ordered(離散型,有大小之分,如星期幾),categorical(離散型,無大小之分,如蘋果,梨子)三類。將處理數據Aggregate分爲,sum, mean,count,median。算法

Vega-lite編程

Vega-Lite吸取了前任對於視覺編碼的研究成果,並參考了d3,visQL(tableau前身)等可視化語言。 Vega-Lite結合了傳統的圖形語法,提供了可視化編碼規則和分層和多視圖顯示。用戶經過組合選擇來指定交互式語義。在Vega-Lite中,選擇是一種抽象,它定義輸入事件處理,興趣點和包含測試的謂詞函數。選擇經過用做輸入數據,定義比例範圍或經過驅動條件邏輯來參數化可視編碼。 Vega-Lite編譯器自動合成必需的數據流和事件處理邏輯,用戶能夠覆蓋這些邏輯以進行進一步的自定義。json

Automated Visualization Design
過去的自動化設計系統使用預先設計的規則對用戶的需求進行斷定,經過聚類和窮舉(dfs),最後獲得一個有限集合,經過rankSVM等排序算法,獲得最後的偏好。這種方案的缺陷在於,窮舉的搜索策略是深度優先搜索,複雜度過大,還有不少回溯,這對於大型設計空間來講效率低。 Draco使用現代約束求解器和標準化的表示語言,而且還提出了軟約束的概念,增長了靈活性。最近的一篇自動可視設計系統是來自idl實驗室的Voyager 2框架

3. Modeling Visualization Design In Draco

  1. 硬性可視化約束規範

如前文所述,Draco當中的規則分爲硬規則和軟規則。硬規則包括一些可視化圖表內部的邏輯(比方說折線圖沒法表示種類等等),還有許多用戶本身定義的偏好。這些規則必須被知足。函數

  • Mark ∈ {bar, line, area, point}工具

  • Channel ∈ {x, y, color, text, shape}學習

  • Field ∈ {site, year, age}

  • Type ∈ {categorical, continuous}

  • Aggregate ∈ {sum, mean, count, median}

  • Zero ∈ {yes, no}

咱們還能夠寫多條件 硬規則,以下所示

  • :- X

X這種狀況不會發生

  • :- channel(_,shape), not mark(point)

代表對於形狀編碼必須是是「點」 ,其餘標記類型(如區域,線,條或文本)不能對形狀進行編碼。

  • :- mark(bar), channel(E, y), continuous(E), not zero(E)

代表必須使用零做爲基線的垂直條形圖。

  1. 軟性可視化約束規範
  • :~ X [w]

傾向於X這種狀況不會發生,若是違反那麼會有w的懲罰

  • :~ continuous(E), not zero(E) [5]

表示模型更喜歡連續字段的座標從零開始,而且違反規則會使這個模型的cost增長5

  • 經過如下的語句定義數據的信道偏好設置
:~ channel(E,y), type(E,nominal). [0]
:~ channel(E,x), type(E,nominal). [1]
:~ channel(E,column), type(E,nominal). [2] 
:~ channel(E,color), type(E,nominal). [3]

假設咱們有m個軟性約束,pi爲第i個約束,每一個約束的懲罰爲wi

令 S = {(p1, w1)… (pi, wi)} npi(v)是v這種視圖違反軟約束pi的次數,那麼Cost能夠定義爲:$Cost(v)=\sum_{i=1..k}wi*n_{pi}(v)$

這樣咱們經過求解器能夠經過這些權值獲得不一樣可視化圖表的偏好。

4. User Study

  1. 比較試驗

本文將Draco與voyager2中使用的CompassQL求解算法作比較,將CompassQL中的規定轉成Draco中的 -: X(硬規則),將CompassQL中的偏化轉成Draco中的 ~:X(軟規則)。實驗結果能夠發現,CompassQL中複雜的規則語句在Draco只須要短短几句。

  1. 使用rankSVM訓練軟約束參數

本文使用lY. Kim and J. Heer. Assessing effects of task and data distribution on the effectiveness of visual
encodings,和 lB. Saket, A. Endert, and C. Demiralp. Task-based effectiveness of basic visualizations. 所用到的實驗數據,訓練軟約束參數,得到了比原先自定義不一樣的可視化結果。

5. Conclusion

做爲今年infovis的best paper,本篇文章確實可圈可點,本論文的文檔,在線演示能夠看https://uwdata.github.io/draco/。下面是總結

  • 本文提出了目前最完整的自動化可視設計框架

  • 這個框架具備高度靈活性和可訓練性

  • 將來它將支持推薦更復雜的圖表或者儀表盤

  • 這個系統爲 理解可視化語法,創新可視化設計,理解不一樣編碼的感知 都有不可或缺的做用

相關文章
相關標籤/搜索