首頁 > 軟體

前端框架ECharts dataset對資料視覺化的高階管理

2022-12-25 14:01:54

dataset 管理資料

提供一份資料。 宣告一個 X 軸,類目軸(category)。預設情況下,類目軸對應到宣告多個 bar 系列,預設情況下,每個系列會自動對應到 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 軸,數值軸。
    yAxis: {},
    // 
    series: [
        {type: 'bar'},
        {type: 'bar'},
        {type: 'bar'}
    ]
}

Apache EChartsTM 4

Apache EChartsTM 4開始支援資料集元件進行單獨的資料集宣告,以便資料可以單獨管理,由多個元件重用,並且可以基於資料指定資料到視覺化的對映。這可以在許多場景中帶來方便。 在ECharts 4之前,資料只能以“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]
        }
    ]
}

該方法的優點是直觀、易於理解,適用於某些特殊圖表型別的特定資料型別客製化。然而,缺點是為了匹配這種資料輸入形式,通常需要有一個資料處理過程,並將資料分割設定為每個系列(和類別軸)。此外,這不利於多個系列共用一個資料,也不利於基於原始資料的圖表型別和系列的對映排列。 因此,ECharts 4提供了一個單獨宣告資料的資料集元件,這帶來了以下效果: 它可以接近資料視覺化的常見思維模式:

(I)提供資料,(II)指定資料到視覺的對映,從而形成圖表。 資料和其他設定可以分開。資料始終在變化,其他設定始終不變。分離易於單獨管理。 資料可以被多個系列或元件重用。對於具有大量資料的場景,不必為每個系列建立一個資料。 支援更常見的資料格式,如二維陣列、物件陣列等,在一定程度上避免使用者轉換為資料格式。

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'}
    ]
};

一目瞭然,可以進行以下對映: 指定資料集的列或行是否對映到一系列圖形。您可以使用SeriesLayoutBy屬性。預設值是按列對映。

series: {
    // 注意維度序號(dimensionIndex)從 0 開始計數,第三列是 dimensions[2]。
    encode: {x: 2, y: 4},
    ...
}

指定維度對映規則:如何將資料集維度(“維度”表示行/列)對映到座標軸(如X和Y軸)、工具提示、標籤、圖形元素大小和顏色(visualMap)。您可以使用series設定encode屬性和visualMap元件(如果需要對映的顏色大小等視覺維度)。在上面的範例中,ECharts沒有提供這種對映設定,因此ECharts將根據最常見的理解執行預設對映:X座標軸宣告為類別軸,預設情況下將自動對應於資料集源中的第一列;三列圖表系列,逐一對應資料集源中的每個後續列。

series: {
    encode: {x: 2, y: 4},
    seriesLayoutBy: 'row',
    ...
}

在系列中設定的 dimensions 會更優先採納。可以在 type 中指定維度型別。可以簡寫為 string,表示維度名。

var option1 = {
    dataset: {
        dimensions: [
            {name: 'score'},
            // 
            'amount',
            // 
            {name: 'product', type: 'ordinal'}
        ],
        source: [...]
    },
    ...
};
var option2 = {
    dataset: {
        source: [...]
    },
    series: {
        type: 'line',
        // 
        dimensions: [
            null, // 可以設定為 null 表示不想設定維度名
            'amount',
            {name: 'product', type: 'ordinal'}
        ]
    },
    ...
};

資料表軟體

在大多數常見的圖表中,資料可以以二維表格的形式描述。廣泛使用的資料表軟體(如MS Excel、Numbers)或關係資料資料庫是二維表。它們的資料可以匯出為JSON格式並輸入到資料集。在原始碼中,在許多情況下可以省略一些資料處理步驟。 如果資料匯出到csv檔案,則可以使用一些csv工具(如dsv或PapaParse)將csv轉換為JSON。 在JavaScript的常見資料傳輸格式中,二維陣列可以直觀地儲存二維表。前面的範例都由二維陣列表示。 除了二維陣列,資料集還支援以下鍵值資料格式,這些格式也非常常見。但是,seriesLayoutBy引數在此類格式中不受支援。 按行的 key-value 形式(物件陣列),這是個比較常見的格式。 按列的 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]
    }
}]

目前,並非所有圖表都支援資料集。支援資料集的圖表包括直線、條形圖、餅圖、掃描器、效應掃描器、平行線、燭臺、地圖、基金和自定義。未來將有更多圖表可供支援。 最後,給出一個例子。多個圖表共用具有連結互動的資料集。

以上就是前端框架ECharts dataset對資料視覺化的高階管理的詳細內容,更多關於ECharts dataset資料視覺化管理的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com