目錄數組
數據可視化的核心在於可視化編碼,而可視化編碼由圖形標記和視覺通道組成,視覺通道在前面的章節中已經講解過,本章的內容是介紹圖形標記,在可視化設計中咱們將常見的圖形標記定義成圖表類型。框架
根據圖形標記能夠表明的數據維度來劃分,圖形標記分爲:編碼
前面咱們介紹過座標系,座標系表明了圖形所在的空間維度,而圖形空間的自由度是在不改變圖形性質的基礎下能夠自由擴展的維度,自由度 = 空間維度 - 圖形標記的維度,那麼:spa
圖形標記的自由度與數據可以映射到圖形的視覺通道size(大小)相關,這個角度上來說:設計
咱們根據圖形自己的維度和其自由度將圖形標記在可視化框架中的實現進行了分類:code
各個圖表的細節實現,在後面有各自的章節專門介紹。blog
咱們說圖表類型是圖形標記在可視化框架中的一種實現方式,這是一種很是粗粒度的劃分,對於每一種圖表類型來講,圖形在繪製的時候有不一樣的形狀,視覺通道跟圖形屬性的映射方式不同也會生成不一樣的圖形:ip
這就產生了咱們在前面提到的視覺通道中Shape(圖形形狀),圖形形狀決定了各個視覺通道和圖形屬性的映射,使用邊框顏色仍是填充顏色、使用點線仍是實線,使用平滑線仍是折線,都是由圖形形狀Shape決定的。ci
Shape是G2中最靈活、內容最豐富的模塊,下圖是各個圖表的shape實現:字符串
geom 類型 | shape 類型 | 解釋 |
---|---|---|
point | 'circle','square','bowtie','diamond','hexagon','triangle','triangle-down', 'hollowCircle','hollowSquare','hollowBowtie','hollowDiamond', 'hollowHexagon','hollowTriangle','hollowTriangle-down', 'cross','tick','plus','hyphen','line' |
hollow開頭的圖形都是空心的 |
line | 'line','smooth','dot','dash','dotSmooth','spline' | dot :點線,smooth: 平滑線 |
area | 'area','smooth','line','dotLine','smoothLine','dotSmoothLine' | [area]和[smooth]是填充內容的區域圖,其餘圖表是空心的線圖 |
interval | 'rect','hollowRect','line','tick','stroke' | [hollowRect]是空心的矩形, [line]和 [tick] 都是線段,stroke:帶邊框的矩形 |
polygon | 'polygon','hollow','stroke' | polygon:多邊形、hollow:空心多邊形和 stroke:帶邊框的多邊形 |
schema | 'box','candle' | 目前僅支持箱須圖、K線圖 |
對於每一個Shape的實現,咱們須要肯定如下內容:
不一樣的Shape支持的視覺通道不一樣,以G2實現的視覺通道爲例:
對於G2來講,接收的數據都是標準的JSON數組,單條數據字段的格式支持2種類型:
因此對於一個Shape來講須要定義好各個視覺通道支持的數據字段格式,下面的示例說明這個問題
柱狀圖是圖表類型interval的一個Shape ‘rect’定義的,各個視覺通道支持的數據格式:
position 支持3種數據類型:
color 僅支持一個標量值字段
各個圖形對數據格式的支持,咱們在後面章節中一一介紹。
數據映射到圖形時,數據跟圖形的對應關係對於不一樣的圖表類型(數據標記)來講各不相同:
point(點圖), 點圖的數據條數和圖形的對應關係,能夠是1:1,也能夠是1:n。若是對應位置的映射字段x,y都是單個標量,那麼就是1:1,若是y是數組,那麼就是1:n。
// 1: 1的數據 var data = [{month: '一月', temperature: 10} , {month: '二月', temperature: 15}] // 1: 2的數據 var data = [{month: '一月', temperature: [0,10]} , {month: '二月', temperature: [5,15]}]
line(線圖)和path(路徑圖),若是對應位置的映射字段x,y都是單個標量多條記錄對應一條線,對應關係是n:1。若是y是數組,那麼會生成多條記錄對應關係是 n: n。同上面point的數據:
interval 一條記錄生成一個圖形,1:1
area(區域圖), 多條數據生成一個圖形,不管對應位置的對應字段的格式如何
polygon,一條數據對應一個圖形, 1: 1。
繪製圖形時,須要根據當前的數據生成圖形的點,而後使用線或者弧鏈接起來,不一樣的圖形須要點的個數不一樣:
interval,繪製柱狀圖、玫瑰圖、餅圖時,須要知道四個頂點
polygon,繪製多邊形時,每一個頂點都須要一個點
更多的細節,也會在對應的圖表類型章節中介紹。
本章概述介紹了圖表類型和圖形形狀,接下來的章節介紹每一種圖表類型,以及其對應的圖形形狀。在介紹具體的圖表類型前,咱們先來說解一下爲了使得數據到圖形的映射更容易理解,對數據進行的調整,下一章節數據調整。你也能夠跳過從最簡單的點圖開始。
G2: https://g2.alipay.com