图例(legend)是图表的辅助元素,使用颜色、大小、形状区分不同的数据类型,用于图表中数据的筛选。
类型 | 展示形态 | 备注 | 优先级 | 进度 |
---|---|---|---|---|
连续图例 | 连续色板 | 高 | ||
渐变色板 | 中 | |||
带刻度线的渐变色板 | 低 | |||
颜色 + 尺寸 | 中 | |||
布局 | 高 | |||
分类图例 | 颜色 | 高 | ||
形状 | 高 | |||
尺寸 | 中 | |||
布局 | 高 |
其他元素:
元素 | 展示形态 | 备注 | 优先级 |
---|---|---|---|
滑块手柄 | 渐变色板状态下滑块步长为一格宽度 可自定义手柄 |
高 | |
分页器 | 自定义按钮 翻页方式 - 横向 - 纵向 - 横向滚动 - 纵向滚动 |
中 | |
分类图例项 | marker + name + value 文本超长时缩略: - name - value |
中 | |
对齐方式 - 纵向 - 横向流式 |
高 |
交互:
事件 | 对象 | 展示形态 | 优先级 |
---|---|---|---|
Hover | 连续色板 | 中 | |
渐进色版 | 中 | ||
图例 | 中 | ||
图例文本 | 显示缩略文本完整信息 | ||
拖拽 | 手柄 | 高 | |
点击 | 图例 | 未选择 选择 |
高 |
其它:图表交互(内网访问)
使用
import { ContinuousLegend, CategoryLegend } from '@antv/GUI';
图例容器大小待定
LegendBaseCfg
- padding: number | number[]
- backgroundStyle: MixAttrs
- orient: "vertical" | "horizontal""horizontal" 布局方式
- title:
- content: string
- spacing: number 标题到图例的距离
- align: ‘left’ | ‘center’ | ‘right’ 标题位置
- style: ShapeAttrs
- formatter:(text: string) => string | Group
- type: ‘category’ | ‘ continuous’ 类型
连续图例 ContinuousLegendCfg
LegendBaseCfg
- min: number 最小值
- max: number 最大值
- start: number 选区范围起始值 ⚠️ 在分块连续图例情况下,start与end需在{min、max、ticks}中取值
- end: number 选区范围结束值
- color: string | string[] 颜色
- label: false | 连续图例标签
- style: ShapeAttrs
- spacing: number 标签与图例间隔
- formatter: (value: number, idx: number) => string
- align:’rail’ | ‘inside’ | ‘outside’’rail’ 为rail时仅显示min和max的label,非rail时需要指定rail.ticks
- rail: 色板配置
- width: number
- height: number
- type: ‘color’ | ‘size’’color’
- chunked: booleanfalse 分块连续图例
- ticks: number[] 分块连续图例分隔点、连续图例Label标记处
- isGradient: boolean | ‘auto’’auto’ 是否使用渐变色 默认items与colors数量相等时不使用渐变色
- backgroundColor: string
- slidable: booleantrue 选区是否可滑动
- step: number1% 滑动步长
- handle: false | 手柄配置
- size: number
- text:
- formatter: (value: number) => string
- style: ShapeAttrs
- align: ‘rail’ | ‘inside’ | ‘outside’
- spacing: number10 文本到手柄的距离,text align为’inside’或’outside’时生效
- icon:
- marker: MarkerOptions[‘symbol’] | stringdefault
- style: ShapeAttrs
- indicator: false | 指示器配置
- size: number4小箭头大小
- backgroundStyle: ShapeAttrs 背景样式
- spacing: number10 文本到色板的距离
- padding: number | number[]4 文字内边距
- text:
- formatter: (value: number) => string
- style: TextProps
分类图例 CategoryLegendCfg
- LegendBaseCfg
- items: CategoryItem[]
- maxWidth: number 最大宽高
- maxHeight: number
- maxCols: number 最大行列数
- maxRows: number
- itemWidth: number 图例项宽度(等分形式)
- maxItemWidth: number 图例项最大宽度(跟随形式)
- spacing: [number, number]10 图例项之间的间隔(行距、列距)
- itemMarker: ItemMarkerCfg | (item: CategoryItem, index: number, items: CategoryItem[]) = > ItemMarkerCfg
- itemName: ItemNameCfg | (item: CategoryItem, index: number, items: CategoryItem[]) = > ItemNameCfg
- itemValue: ItemValueCfg | (item: CategoryItem, index: number, items: CategoryItem[]) = > ItemValueCfg
- itemBackgroundStyle: MixAttrs | (item: CategoryItem, index: number, items: CategoryItem[]) = > MixAttrs
- autoWrap: boolean 自动换行、列
- reverse: boolean 图例项倒序
- pageNavigator: PageNavigatorCfg 分页器
分页 PageNavigatorCfg
- button:
- marker:MarkerCfg | (type: ‘prev’ | ‘next’) => MarkerCfg 类型定义待确定
- size: number12
- style: MixAttrs
- pagination: 页码
- style: ShapeAttrs
- divider: string/ 页码分隔符
- formatter: (pageNum: number) => number | string
ItemMarkerCfg
- markermarkerType
- spacing: number10 marker 与 前部的距离
- size: number10 marker 尺寸
-
ItemNameCfg
formatter: (text: string, item: CategoryItem, index: number) => string;
- spacing: number10 marker 与 name 的间隔
- style: MixAttrs
ItemValueCfg
- formatter: (value: number, item: CategoryItem, index: number) => string;
- spacing: number10 name 与 value 的间隔
- align: ‘left’ | ‘right’
- style: MixAttrs
交互
连续图例
API
setIndicator(value: number | item: ListItem | undefined)设置/取消指示器
事件
onValueChanged(value: number[]| ListItem[]):图例值改变时触发(连续图例为范围改变,分类图例为选项改变)
hover、click事件由上层控制
onIndicated(value: number | [number, number]): 指示器hover时触发