數據可視化的核心內容是可視化編碼,是將數據信息映射成可視化元素的技術。可視化編碼由兩部分組成:幾何標記(圖形元素)和視覺通道。數組
幾何標記:可視化中標記一般是一些幾何圖形元素,例如:點、線、面、體函數
視覺通道:用於控制幾何標記的展現特性,包括標記的位置、大小、形狀、方向、色調、飽和度、亮度等post
人類對視覺通道的識別有兩種基本的感知模式。第一種感知模式獲得的信息是關於對象自己的特徵和位置等,對應視覺通道的定性性質和分類性質;第二種感知模式獲得的信息是對象某一屬性在數值上的大小,對應視覺通道的定量性質或者定序性質。所以咱們將視覺通道分爲兩大類:編碼
然而兩種分類不是絕對的,例如位置信息,既能夠區分不一樣的分類,又能夠分辨連續數據的差別spa
進行可視化編碼時咱們須要考慮不一樣視覺通道的表現力和有效性,主要體如今下面幾個方面:設計
視覺通道的表現力:
3d
可視化編碼的過程能夠理解爲數據的字段和可視化通道之間創建對應關係的過程,它們的映射關係以下:
* 一個數據字段對應一個視覺通道(1:1)
* 一個數據字段對應多個視覺通道(1:n)
* 多個數據字段對應一個視覺通道(n:1)code
咱們看下面的示例:對象
本圖存在如下1:1的映射關係:blog
視覺通道
長度
chart.interval().position('班級*人數');
本圖存在如下映射關係:
位置
長度
顏色
因此班級的映射存在兩個視覺通道 1:n。
chart.interval().position('班級*人數').color('班級');
顏色由班級和學生人數共同決定,規則以下:
班級和學生人數共同決定了顏色映射,因此此映射是 n:1
chart.interval().position('班級*人數').color('班級*人數',function(grade,count){ if (grade == '1' || count > 40) { return 'red'; } else { return 'green'; } });
在 G2 中咱們並無實現上面提到的全部的視覺通道,而是下面幾種:
G2 中的視覺通道做爲標記的屬性存在,須要支持如下功能:
類結構以下:
因此視覺通道在G2的語法中這樣定義:
chart.<geom><attr>(dims,[callback])
除了attr(dims,callback)的函數原型外,G2爲了用戶的便利性,結合各個視覺通道的特色,也提供了更爲便捷的使用方式,在本章後面有詳細的介紹。
示例:
chart.point().position('a*b').color('c'); chart.interval().position('a*b').color('c',function(c){ if(c) { return 'red' } return 'green'; });
位置是惟一的既能夠用於編碼分類,又可用於編碼定序或者定量的數據屬性。在二維平面上有垂直方向和水平方向兩個能夠分離的視覺通道。因此position屬性支持的用戶輸入方式:
一維點圖
二維點圖
從可視化編碼的角度對顏色進行分析,能夠將顏色分爲亮度、飽和度和色調三個視覺通道,其中前2個能夠認爲是定量和定序的視覺通道,而色調屬於定性的視覺通道。而咱們在G2中咱們並不區分這3個視覺通道,所以咱們認爲顏色既是分類又是定量的視覺通道。因此color方法有更多的快捷方式:
分類數據的顏色映射:
定量(連續)數據的顏色映射:
從可視化的角度分析,大小(size)是一個複雜的視覺通道,對於不一樣的標記含義不徹底一致:
size 的快捷方式:
更多的對size的解釋能夠查看後面章節的各個幾何標記中對size的解析
點圖大小:
柱狀圖的大小:
不一樣的幾何標記有不一樣的shape(形狀),各自的章節中有詳細介紹。shape這個視覺通道受其餘幾個視覺通道影響,好比:shape能夠將color映射到填充色上,也能夠映射到邊框上。shape方法的使用方式比較簡單,經常使用於映射分類數據:
點圖的形狀:
柱狀圖的形狀:
透明度在視覺編碼過程當中,只能進行定量(連續)數據的映射,做爲顏色的一個補充使用,因此提供如下快捷方式:
本章介紹了視覺通道和G2中視覺通道的設計,不一樣視覺通道在各類幾何標記中的實現不一樣,後面的章節中會有更詳細的介紹,下一章節,咱們介紹座標系,並探討不一樣視覺通道在不一樣座標系下的不一樣表現。
G2站點: http://g2.alipay.com