echarts開發 | 數據可視化 -- 第三篇 echart進階配置項 數據集

文章目錄

    • 一、概念
    • 二、回顧在系列(series)中設置數據
    • 三、在數據集中設置數據
      • 3.1 數據集(dataset) 基礎
      • 3.2 二維數組數據(默認)
    • 四、把數據集(dataset) 的行或列 映射為 序列 (series)
    • 五、維度(dimension)
    • 六、數據到圖形的映射 (series.encode)

一、概念

數據集 (dataset) 是專門用來管理數據的組件。雖然可以在 series.data 中設置每個系列數據,但是使用數據集來管理數據更高效,數據可以被多個組件復用,可以方便進行 數據和其他配置 分離的配置風格。

二、回顧在系列(series)中設置數據

如果在序列(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]}]
};
  • 優點:
    適于對一些特殊的數據結構(如“樹”、“圖”、超大數據)進行一定的數據類型定制
  • 缺點:
    但是缺點是,常需要用戶先處理數據,把數據分割設置到各個系列(和類目軸)中。此外,不利于多個系列共享一份數據,也不利于基于原始數據進行圖表類型、系列的映射安排。

三、在數據集中設置數據

  • 優勢:
  • 能夠貼近數據可視化常見思維方式:(I)提供數據,(II)指定數據到視覺的映射,從而形成圖表。
  • 數據和其他配置可以被分離開來。數據常變,其他配置常不變。分開易于分別管理。
  • 數據可以被多個系列或者組件復用,對于大數據量的場景,不必為每個系列創建一份數據。
  • 支持更多的數據的常用格式,例如二維數組、對象數組等,一定程度上避免使用者為了數據格式而進行轉換

如:

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]]},// 聲明一個 X 軸,類目軸(category)。默認情況下,類目軸對應到 dataset 第一列。xAxis: { type: 'category' },// 聲明一個 Y 軸,數值軸。yAxis: {},// 聲明多個 bar 系列,默認情況下,每個系列會自動對應到 dataset 的每一列。series: [{ type: 'bar' }, { type: 'bar' }, { type: 'bar' }]
};

在這里插入圖片描述
或者使用常見的 對象數組 格式:

option = {legend: {},tooltip: {},dataset: {// 用 dimensions 指定了維度的順序。直角坐標系中,如果 X 軸 type 為 category,// 默認把第一個維度映射到 X 軸上,后面維度映射到 Y 軸上。// 如果不指定 dimensions,也可以通過指定 series.encode// 完成映射,參見后文。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' }]
};

3.1 數據集(dataset) 基礎

使用dataset設置數據集,可以將數據和配置項分開,便于動態數據的使用,易于管理。
數據集的位置一般為option.dataset, 又兩個常用的屬性分別為 sourcedimensions

  • source
    用于指定數據 可以是二維數組,也可以是對象數組
  • dimensions
    用于指定維度與數據項,當指定列為維度的時候,那么每行就是一個數據項。

dataset 配置項遵循 先類目、后數據 的規律,在默認情況下,先選擇類目軸的內容,接下來內容則為繪制圖形中對應的數據值。

3.2 二維數組數據(默認)

在使用 dataset 時,ECharts 會自動搜索 source 中的數據,在未指定的情況下默認 第1列從第2行開始為類目軸中的顯示內容(產品名稱),第2列開始每1列為一組數據,即從左向右看為 先類目、后數據,

四、把數據集(dataset) 的行或列 映射為 序列 (series)

可以使用 seriesLayoutBy 配置項,改變圖表對于行列的理解。seriesLayoutBy 可取值:
'column': 默認值。系列被安放到 dataset 的列上面。
'row': 系列被安放到 dataset 的行上面。

option = {legend: {},tooltip: {},dataset: {source: [['product', '2012', '2013', '2014', '2015'],['Matcha Latte', 41.1, 30.4, 65.1, 53.3],['Milk Tea', 86.5, 92.1, 85.7, 83.1],['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4]]},xAxis: [{ type: 'category', gridIndex: 0 },{ type: 'category', gridIndex: 1 }],yAxis: [{ gridIndex: 0 }, { gridIndex: 1 }],grid: [{ bottom: '55%' }, { top: '55%' }],series: [// 這幾個系列會出現在第一個直角坐標系中,每個系列對應到 dataset 的每一行。{ type: 'bar', seriesLayoutBy: 'row', xAxisIndex: 0, yAxisIndex: 0 },{ type: 'bar', seriesLayoutBy: 'row', xAxisIndex: 0, yAxisIndex: 0 },{ type: 'bar', seriesLayoutBy: 'row', xAxisIndex: 0, yAxisIndex: 0 },// 這幾個系列會出現在第二個直角坐標系中,每個系列對應到 dataset 的每一列。{ type: 'bar', seriesLayoutBy: 'column', xAxisIndex: 1, yAxisIndex: 1 },{ type: 'bar', seriesLayoutBy: 'column', xAxisIndex: 1, yAxisIndex: 1 },{ type: 'bar', seriesLayoutBy: 'column', xAxisIndex: 1, yAxisIndex: 1 },{ type: 'bar', seriesLayoutBy: 'column', xAxisIndex: 1, yAxisIndex: 1 }]
};

五、維度(dimension)

當我們把系列(series)對應到“列”的時候,那么每一列就稱為一個“維度(dimension)”,而每一行稱為數據項(item)。反之,如果我們把系列(series)對應到表行,那么每一行就是“維度(dimension)”,每一列就是數據項(item)。

維度可以有單獨的名字,便于在圖表中顯示。維度名(dimension name)可以在定義在 dataset 的第一行(或者第一列)。例如下面的例子中,‘score’、‘amount’、‘product’ 就是維度名。從第二行開始,才是正式的數據。dataset.source 中第一行(列)到底包含不包含維度名,ECharts 默認會自動探測。當然也可以設置 dataset.sourceHeader: true 顯示聲明第一行(列)就是維度,或者 dataset.sourceHeader: false 表明第一行(列)開始就直接是數據。

維度的定義,也可以使用單獨的 dataset.dimensions 或者 series.dimensions 來定義,這樣可以同時指定維度名,和維度的類型(dimension type):

var option1 = {dataset: {dimensions: [{ name: 'score' },// 可以簡寫為 string ,表示 dimension name 。'amount',// 可以在 type 中指定維度類型。{ name: 'product', type: 'ordinal' }],source: [//...]}// ...
};var option2 = {dataset: {source: [// ...]},series: {type: 'line',// series.dimensions 會更優先于 dataset.dimension 采納。dimensions: [null, // 可以設置為 null 表示不想設置維度名'amount',{ name: 'product', type: 'ordinal' }]}// ...
};

大多數情況下,我們并不需要去設置維度類型,因為 ECharts 會自動嘗試判斷。但是如果不足夠準確時,可以手動設置維度類型。

維度類型(dimension type)可以取這些值:

  • 'number' : 默認,表示普通數據。
  • 'ordinal': 對于類目、文本這些 string 類型的數據,如果需要能在數軸上使用,須是 ‘ordinal’ 類型。ECharts 默認會試圖自動判斷這個類型。但是自動判斷也可能不準確,所以使用者也可以手動強制指定。
    'time': 表示時間數據。設置成 ‘time’ 則能支持自動解析數據成時間戳(timestamp),比如該維度的數據是 ‘2017-05-10’,會自動被解析。如果這個維度被用在時間數軸(axis.type 為 ‘time’)上,那么會被自動設置為 ‘time’ 類型。時間類型的支持參見 data。
    'float': 如果設置成 ‘float’,在存儲時候會使用 TypedArray,對性能優化有好處。
    'int': 如果設置成 ‘int’,在存儲時候會使用 TypedArray,對性能優化有好處。

六、數據到圖形的映射 (series.encode)

var option = {dataset: {source: [['score', 'amount', 'product'],[89.3, 58212, 'Matcha Latte'],[57.1, 78254, 'Milk Tea'],[74.4, 41032, 'Cheese Cocoa'],[50.1, 12755, 'Cheese Brownie'],[89.7, 20145, 'Matcha Cocoa'],[68.1, 79146, 'Tea'],[19.6, 91852, 'Orange Juice'],[10.6, 101852, 'Lemon Juice'],[32.7, 20112, 'Walnut Brownie']]},xAxis: {},yAxis: { type: 'category' },series: [{type: 'bar',encode: {// 將 "amount" 列映射到 X 軸。x: 'amount',// 將 "product" 列映射到 Y 軸。y: 'product'}}]
};

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83919.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何科學測算AI業務場景所需算力服務器?——以Qwen3 32B模型與海光K100為例

在人工智能(AI)技術飛速發展的今天,越來越多企業開始部署大模型應用,如智能問答、文本生成、知識圖譜構建等。但如何合理配置硬件資源,既滿足業務需求又避免資源浪費,是每個項目實施前必須解決的問題。 本…

滲透實戰:利用XSS獲取cookie和密碼

操作均來自靶場,切勿用于未授權滲透測試! Lab 21:將反射型 XSS 注入帶有尖括號、單引號、雙引號、反斜杠和反引號的 Unicode 轉義模板文字中 輸入的任何單引號雙引號尖括號都會被 unicode 編碼 直接換另一種代碼執行方式${alert(1)}&#…

Eureka、Nacos、Zookeeper 優雅上下線機制

? 三大注冊中心優雅上下線機制對比 維度EurekaNacosZookeeper注冊方式客戶端注冊 心跳維持客戶端注冊 心跳維持客戶端創建臨時節點服務可用狀態控制STARTING、UP、DOWN、OUT_OF_SERVICEUP、DOWN、STARTING 等無顯式狀態標識,靠節點存在與否判定上線控制方式通過…

Flink與Kubernetes集成

引言 在當今大數據與云計算蓬勃發展的時代,容器編排與流處理技術成為企業數據處理架構的關鍵支柱。Kubernetes作為容器編排系統的行業標準,能夠高效自動化地部署、擴展和管理計算機應用程序;Apache Flink則是流處理和批處理領域的佼佼者&…

第五節:Vben Admin 最新 v5.0 (vben5) 快速入門 - 角色管理模塊(上)

Vben5 系列文章目錄 ?? 基礎篇 ? 第一節:Vben Admin 最新 v5.0 (vben5) 快速入門 ? 第二節:Vben Admin 最新 v5.0 (vben5) 快速入門 - Python Flask 后端開發詳解(附源碼) ? 第三節:Vben Admin 最新 v5.0 (vben5) 快速入門 - 對接后端登錄接口(上) ? 第四節:Vben Ad…

實施企業預算管理的企微CRM系統技巧:從成本控制到價值創造

一、企微CRM管理系統為何成為預算管理新引擎? 官方數據顯示,接入企微CRM系統的企業平均降低客戶管理成本28%,預算執行效率提升40%。這源于企微CRM管理軟件的三大獨特優勢: 原生集成能力:與企業微信通訊錄、會話存檔無縫對接&…

WebFuture:手機版頁面部分區域報錯:未將對象引用設置到對象的實例

問題描述: 手機版頁面部分區域報錯:未將對象引用設置到對象的實例,PC板訪問正常。 問題分析: 對比PC和手機頁面模板,調用代碼有以下差異,手機版模板沒兼容null值,簡介為空導致報錯。 解決方法…

【Cursor點擊登錄后一直轉圈,無反應】

Cursor點擊登錄后一直轉圈,無反應 一、問題描述二、解決方案 一、問題描述 1、進入Cursor官網(國際版): Cursor國際版地址 2、填入賬號密碼,點擊登錄 3、一直轉圈,無法登錄 二、解決方案 使用梯子&…

【無標題】世界模型

為什么大語言模型,沒有真正推動經濟大幅增長,但世界模型有可能 5月份谷歌IO大會,DeepMind老板(谷歌AI業務負責人,2024Nobel化學獎得主,黛密斯哈薩比斯)提到,谷歌接下來目標是做世界…

Doc2X:?精度、?性價??檔解析 API,助力Arxiv論文智能解讀Agent構建

前言 在AI大模型時代,RAG(Retrieval-Augmented Generation)檢索增強生成技術已經成為構建智能知識庫和問答系統的核心架構。然而,在實際項目實施過程中,開發者們往往會遇到一個關鍵痛點:如何高質量地將各種…

uniapp 對接deepseek

廢話不多說直接上代碼 // 小程序專用流式服務 export const streamChatMiniProgram (messages, options {secret: "" }) > {return new Promise((resolve, reject) > {// 構建請求數據 const requestData {model: deepseek-chat,messages,stream: true,ma…

Softhub軟件下載站實戰開發(四):代碼生成器設計與實現

文章目錄 Softhub軟件下載站實戰開發(四):代碼生成器設計與實現1.前言 📜2.技術選型3.架構概覽 🏗?3.1 架構概覽3.2 工作流程詳解 4.核心功能實現 ?4.1 配置管理系統4.2 數據庫表結構解析4.3 模板渲染引擎4.4 智能類…

鴻蒙組件通用屬性深度解析:從基礎樣式到高級定制的全場景指南

一、引言:通用屬性 —— 構建視覺體驗的核心語言 在鴻蒙應用開發體系中,組件的視覺呈現與交互體驗主要通過通用屬性系統實現。這些屬性構成了從基礎樣式定義(尺寸、顏色)到復雜交互控制(動畫、布局)的完整…

選擇與方法專欄(9) 職場內篇: 是否要跳出舒適圈?如何處理犯錯?

合集文章 一個中科大差生的8年程序員工作總結_8年工作經驗 程序員-CSDN博客 選擇與方法專欄(1)職場外篇:謹慎的選擇城市、行業、崗位-CSDN博客 選擇與方法專欄(2)職場外篇: 每個時代都有自己的機遇-CSDN…

DCM4CHEE ARCHIVE LIGHT 源代碼解析(1)-前言

系列文章目錄 DCM4CHEE ARCHIVE LIGHT 源代碼解析(1)-前言DCM4CHEE ARCHIVE LIGHT 源代碼解析(2)-STOWRS文章目錄 系列文章目錄概述一、項目結構1、下載解壓代碼2、IntelliJ IDEA加載源代碼二、編譯發布1、編譯 dcm4chee-arc-ear 項目2、編譯 dcm4chee-arc-ui2 項目寫在結尾概…

基于DeepSeek-R1-Distill-Llama-8B的健康管理助手微調過程

基于DeepSeek-R1-Distill-Llama-8B的健康管理助手微調過程 本次創新實訓項目的主要任務是利用DEEPSEEK提供的開源模型,通過微調技術,實現一個專注于健康管理與醫療咨詢的人工智能助手。本文詳細記錄我們如何對DeepSeek-R1-Distill-Llama-8B模型進行微調…

TI 毫米波雷達走讀系列—— 3DFFT及測角

TI 毫米波雷達走讀系列—— 3DFFT及測角 測角原理 —— 角度怎么測測角公式 —— 角度怎么算相位差測角基本公式為什么是3DFFT1. 空間頻率與角度的對應關系2. FFT的數學本質:離散空間傅里葉變換 測角原理 —— 角度怎么測 本節內容解決角度怎么測的問題&#xff0c…

圖解JavaScript原型:原型鏈及其分析 02 | JavaScript圖解

? ? 任何函數既可以看成一個實例對象又可以看成一個函數 作為一個實例對象其隱式原型對象指向其構造函數的顯式原型對象 作為一個函數其顯式原型對象指向一個空對象 任何一個函數其隱式原型對象指向其構造函數的顯式原型對象 任何一個函數是 Function 函數創建的實例&…

自定義View實現K歌開始前歌詞上方圓點倒計時動畫效果

在上一篇KRC歌詞解析原理及Android實現K歌動態歌詞效果介紹了動態歌詞的實現,我們繼續完善一下。在K歌場景中,一些歌曲前奏很長,用戶不知道什么時候開始唱,這時一般在歌詞上方會有一個圓點倒計時的效果來提醒用戶開始時間,如下圖:開始唱之前,圓點會逐個減少,直至圓點全…

ffmpeg subtitles 字幕不換行的問題解決方案

使用ffmpeg在mac下處理srt中文字幕可以自動換行,linux環境下不換行直接超出視頻區域了 這是因為在mac環境下的SimpleText 渲染器自動處理了文本,而linux無法處理。 mac: linux: 方案: ?:網上找到的方案…