SuperAPI AI 工具集

G2 Legend Expert

编程与开发

查看项目

更新于 10-15 19:57

技能介绍

用途:该技能面向 G2 图表库的图例开发,提供从组件创建到布局计算、交互处理的完整知识,帮助理解图例渲染实现与组件架构。

主要能力:

  1. 图例渲染流程:由 src/runtime/component.ts 的 inferComponent 从图表 scales 与配置推断图例组件,分析 shape、size、color、opacity 等通道,判断生成 legendCategory(离散)或 legendContinuous(连续),并推断默认位置与方向。
  2. 组件实现:LegendCategory(src/component/legendCategory.ts)处理分类图例,含数据加工、标记推断、LegendCategoryLayout 布局包装,支持标准 GUI 与自定义 HTML 渲染;LegendContinuous(src/component/legendContinuous.ts)支持 linear、log、time、quantize、quantile、threshold 等连续比例尺,生成色带并格式化标签。
  3. 布局与尺寸:src/runtime/layout.ts 中 computeComponentSize 处理尺寸,padding 为 'auto' 时按内容动态计算,手动设置时使用默认尺寸;computePadding 为核心布局逻辑。placeComponents 按 top、bottom、left、right、center 分组并分配包围盒。
  4. 交互:src/interaction/legendFilter.ts 实现图例筛选,处理 click、pointerenter、pointerout 事件,维护选中状态并更新图表数据,支持跨视图协调;提供选中/未选中、悬停、聚焦等视觉状态。
  5. 定制与主题:支持主题属性、组件级主题与样式覆盖,可配置位置、尺寸、内边距与水平/垂直方向。

使用方式:资料未提供具体安装命令或调用示例,仅说明相关源码文件与函数位置。

适用场景:G2 图例渲染实现、布局调试、交互筛选与主题定制开发。

限制与常见问题:手动设置 paddingTop(如 72)时 legendCategory 高度可能从 60px 变为 40px,原因是手动 padding 时布局引擎使用 defaultSize(LegendCategory 默认 40)而非测量内容,需显式设置 size 覆盖;交互方面需注意事件冒泡、状态同步与筛选事件节流。更多布局细节见 ./knowledge/legendLayout.md。