前端框架ECharts?dataset對數(shù)據(jù)可視化的高級管理
dataset 管理數(shù)據(jù)
提供一份數(shù)據(jù)。 聲明一個 X 軸,類目軸(category)。默認情況下,類目軸對應(yīng)到聲明多個 bar 系列,默認情況下,每個系列會自動對應(yīng)到 dataset 的每一列。
option = { legend: {}, tooltip: {}, dataset: { // source: [ ['product', '2015', '2016', '2017'], ['Matcha Latte', 43.3, 85.8, 93.7], ['Milk Tea', 83.1, 73.4, 55.1], ['Cheese Cocoa', 86.4, 65.2, 82.5], ['Walnut Brownie', 72.4, 53.9, 39.1] ] }, //dataset 第一列。 xAxis: {type: 'category'}, // 聲明一個 Y 軸,數(shù)值軸。 yAxis: {}, // series: [ {type: 'bar'}, {type: 'bar'}, {type: 'bar'} ] }
Apache EChartsTM 4
Apache EChartsTM 4開始支持數(shù)據(jù)集組件進行單獨的數(shù)據(jù)集聲明,以便數(shù)據(jù)可以單獨管理,由多個組件重用,并且可以基于數(shù)據(jù)指定數(shù)據(jù)到可視化的映射。這可以在許多場景中帶來方便。 在ECharts 4之前,數(shù)據(jù)只能以“series”形式聲明,
option = { xAxis: { type: 'category', data: ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'] }, yAxis: {}, series: [ { type: 'bar', name: '2015', data: [89.3, 92.1, 94.4, 85.4] }, { type: 'bar', name: '2016', data: [95.8, 89.4, 91.2, 76.9] }, { type: 'bar', name: '2017', data: [97.7, 83.1, 92.5, 78.1] } ] }
該方法的優(yōu)點是直觀、易于理解,適用于某些特殊圖表類型的特定數(shù)據(jù)類型定制。然而,缺點是為了匹配這種數(shù)據(jù)輸入形式,通常需要有一個數(shù)據(jù)處理過程,并將數(shù)據(jù)分割設(shè)置為每個系列(和類別軸)。此外,這不利于多個系列共享一個數(shù)據(jù),也不利于基于原始數(shù)據(jù)的圖表類型和系列的映射排列。 因此,ECharts 4提供了一個單獨聲明數(shù)據(jù)的數(shù)據(jù)集組件,這帶來了以下效果: 它可以接近數(shù)據(jù)可視化的常見思維模式:
(I)提供數(shù)據(jù),(II)指定數(shù)據(jù)到視覺的映射,從而形成圖表。 數(shù)據(jù)和其他配置可以分開。數(shù)據(jù)始終在變化,其他配置始終不變。分離易于單獨管理。 數(shù)據(jù)可以被多個系列或組件重用。對于具有大量數(shù)據(jù)的場景,不必為每個系列創(chuàng)建一個數(shù)據(jù)。 支持更常見的數(shù)據(jù)格式,如二維數(shù)組、對象數(shù)組等,在一定程度上避免用戶轉(zhuǎn)換為數(shù)據(jù)格式。
dimensions 指定了維度的順序
用 dimensions 指定了維度的順序。直角坐標系中, 默認把第一個維度映射到 X 軸上,第二個維度映射到 Y 軸上。如果不指定 dimensions,也可以通過指定 series.encode,完成映射。
option = { legend: {}, tooltip: {}, dataset: { dimensions: ['product', '2015', '2016', '2017'], source: [ {product: 'Matcha Latte', '2015': 43.3, '2016': 85.8, '2017': 93.7}, {product: 'Milk Tea', '2015': 83.1, '2016': 73.4, '2017': 55.1}, {product: 'Cheese Cocoa', '2015': 86.4, '2016': 65.2, '2017': 82.5}, {product: 'Walnut Brownie', '2015': 72.4, '2016': 53.9, '2017': 39.1} ] }, xAxis: {type: 'category'}, yAxis: {}, series: [ {type: 'bar'}, {type: 'bar'}, {type: 'bar'} ] };
一目了然,可以進行以下映射: 指定數(shù)據(jù)集的列或行是否映射到一系列圖形。您可以使用SeriesLayoutBy屬性。默認值是按列映射。
series: { // 注意維度序號(dimensionIndex)從 0 開始計數(shù),第三列是 dimensions[2]。 encode: {x: 2, y: 4}, ... }
指定維度映射規(guī)則:如何將數(shù)據(jù)集維度(“維度”表示行/列)映射到坐標軸(如X和Y軸)、工具提示、標簽、圖形元素大小和顏色(visualMap)。您可以使用series配置encode屬性和visualMap組件(如果需要映射的顏色大小等視覺維度)。在上面的示例中,ECharts沒有提供這種映射配置,因此ECharts將根據(jù)最常見的理解執(zhí)行默認映射:X坐標軸聲明為類別軸,默認情況下將自動對應(yīng)于數(shù)據(jù)集源中的第一列;三列圖表系列,逐一對應(yīng)數(shù)據(jù)集源中的每個后續(xù)列。
series: { encode: {x: 2, y: 4}, seriesLayoutBy: 'row', ... }
在系列中設(shè)置的 dimensions 會更優(yōu)先采納。可以在 type 中指定維度類型??梢院唽憺?string,表示維度名。
var option1 = { dataset: { dimensions: [ {name: 'score'}, // 'amount', // {name: 'product', type: 'ordinal'} ], source: [...] }, ... }; var option2 = { dataset: { source: [...] }, series: { type: 'line', // dimensions: [ null, // 可以設(shè)置為 null 表示不想設(shè)置維度名 'amount', {name: 'product', type: 'ordinal'} ] }, ... };
數(shù)據(jù)表軟件
在大多數(shù)常見的圖表中,數(shù)據(jù)可以以二維表格的形式描述。廣泛使用的數(shù)據(jù)表軟件(如MS Excel、Numbers)或關(guān)系數(shù)據(jù)數(shù)據(jù)庫是二維表。它們的數(shù)據(jù)可以導(dǎo)出為JSON格式并輸入到數(shù)據(jù)集。在源代碼中,在許多情況下可以省略一些數(shù)據(jù)處理步驟。 如果數(shù)據(jù)導(dǎo)出到csv文件,則可以使用一些csv工具(如dsv或PapaParse)將csv轉(zhuǎn)換為JSON。 在JavaScript的常見數(shù)據(jù)傳輸格式中,二維數(shù)組可以直觀地存儲二維表。前面的示例都由二維數(shù)組表示。 除了二維數(shù)組,數(shù)據(jù)集還支持以下鍵值數(shù)據(jù)格式,這些格式也非常常見。但是,seriesLayoutBy參數(shù)在此類格式中不受支持。 按行的 key-value 形式(對象數(shù)組),這是個比較常見的格式。 按列的 key-value 形式。
dataset: [{ // source: [ {product: 'Matcha Latte', count: 823, score: 95.8}, {product: 'Milk Tea', count: 235, score: 81.4}, {product: 'Cheese Cocoa', count: 1042, score: 91.2}, {product: 'Walnut Brownie', count: 988, score: 76.9} ] }, { // source: { 'product': ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], 'count': [823, 235, 1042, 988], 'score': [95.8, 81.4, 91.2, 76.9] } }]
目前,并非所有圖表都支持數(shù)據(jù)集。支持數(shù)據(jù)集的圖表包括直線、條形圖、餅圖、掃描儀、效應(yīng)掃描儀、平行線、燭臺、地圖、基金和自定義。未來將有更多圖表可供支持。 最后,給出一個例子。多個圖表共享具有鏈接交互的數(shù)據(jù)集。
以上就是前端框架ECharts dataset對數(shù)據(jù)可視化的高級管理的詳細內(nèi)容,更多關(guān)于ECharts dataset數(shù)據(jù)可視化管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
TypeScript對象解構(gòu)操作符在Spartacus實際項目開發(fā)中的應(yīng)用解析
這篇文章主要為大家介紹了TypeScript對象解構(gòu)操作符在Spartacus實際項目開發(fā)中的應(yīng)用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07lodash內(nèi)部方法getData和setData實例解析
本篇章我們將了解lodash里內(nèi)部關(guān)于Data的操作方法,重點關(guān)注getData、setData兩個內(nèi)部方法,同時由實現(xiàn)上引申其他內(nèi)部封裝的方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08使用compose函數(shù)優(yōu)化代碼提高可讀性及擴展性
這篇文章主要為大家介紹了使用compose函數(shù)提高代碼可讀性及擴展性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06javascript使用btoa和atob來進行Base64轉(zhuǎn)碼和解碼
javascript原生的api本來就支持,Base64,但是由于之前的javascript局限性,導(dǎo)致Base64基本中看不中用。當前html5標準正式化之際,Base64將有較大的轉(zhuǎn)型空間,對于Html5 Api中出現(xiàn)的如FileReader Api, 拖拽上傳,甚至是Canvas,Video截圖都可以實現(xiàn)2017-03-03javascript中的箭頭函數(shù)基礎(chǔ)語法及使用場景示例
這篇文章主要為大家介紹了?javascript中的箭頭函數(shù)基礎(chǔ)語法及使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07