菜单

图例系统

相关源文件

Apache ECharts 中的图例系统提供了一种显示和交互数据可视化图例的方式。它允许用户识别不同的数据系列、切换系列的可见性,并自定义图例项的外观。

概述

图例系统由两个主要组件组成:数据模型(LegendModel)和视图组件(LegendView)。这些组件协同工作以渲染和管理图例项,处理用户交互,并与图表系列进行通信。

来源

核心组件

LegendModel(图例模型)

LegendModel 继承自 ComponentModel,负责:

  1. 管理图例数据项
  2. 跟踪选择状态
  3. 提供配置选项
  4. 处理数据变更

关键方法

  • select/unSelect/toggleSelected:管理项选择状态
  • isSelected:检查项是否当前被选中
  • allSelect/inverseSelect:选择工具方法
  • _updateData:处理和准备来自系列图例数据

来源

LegendView(图例视图)

LegendView 继承自 ComponentView,负责:

  1. 渲染图例项(图标和文本)
  2. 管理布局和定位
  3. 处理用户交互
  4. 响应模型变化

重要方法

  • render:渲染图例的主入口
  • renderInner:根据模型数据创建图例项
  • layoutInner:根据方向和位置计算并应用布局
  • _createItem:创建具有正确样式的单个图例项

来源

数据流

下图说明了数据和交互如何流经图例系统

来源

图例项

图例项由符号/图标和文本标签组成。两者的外观都高度可定制。

符号创建

系列可以通过 getLegendIcon 方法定义自定义图例图标

来源

配置选项

图例系统提供广泛的配置选项

基本选项

选项类型默认描述
show布尔值true是否显示图例
orient字符串'horizontal'方向:'horizontal'(水平)或 'vertical'(垂直)
align字符串'auto'对齐方式:'auto'、'left'(左)、'right'(右)
data数组[]图例项数据(默认使用系列名称)
selectedMode布尔值/字符串true选择模式:true、false、'single'(单选)、'multiple'(多选)

定位选项

选项类型默认描述
leftstring/number'center'距左侧的位置
topstring/number0距顶部的位置
rightstring/number-距右侧的位置
底部string/number-距底部的位置
widthstring/number-图例区域的宽度
heightstring/number-图例区域的高度
paddingnumber/Array5图例区域的内边距
itemGap数字10图例项之间的间距

样式选项

选项类型默认描述
itemStyle对象-图例符号的样式
lineStyle对象-图例线条的样式
textStyle对象-图例标签的文本样式
inactiveColor字符串'#ccc'图例项非激活时的颜色
symbolRotatenumber/string'inherit'图例符号的旋转

来源

高级特性

选择器按钮

图例可以包含选择器按钮,用于全选或反选当前选择

来源

图标定制

系列可以通过 getLegendIcon 方法定义自定义图例图标

来源

与图表系列的集成

图表系列以几种方式与图例系统集成:

  1. 视觉映射:系列注册其用于图例表示的视觉样式
  2. 自定义图标定义:系列可以定义自定义图例图标
  3. 选择处理:系列响应图例选择变化

来源

常见用法示例

基本图例

自定义图例位置和样式

带选择器按钮的图例

来源

实现细节

图例项创建

创建图例项时,会发生以下过程:

  1. 从系列中收集视觉样式
  2. 根据系列类型创建相应的符号/图标
  3. 应用视觉样式(颜色、大小等)
  4. 创建文本标签
  5. 设置交互事件处理程序

来源

事件处理

当用户与图例项交互时,可能会分发以下几个事件:

  1. legendToggleSelect:切换系列可见性
  2. highlight:高亮相关系列元素
  3. downplay:取消系列元素的高亮

来源