文章目录

    • 一、概念
    • 二、回顾在系列(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: 方案: ❌:网上找到的方案…