当前位置: 首页 > news >正文

Antv AVA入门教程

以下教程聚焦 AVA 核心包中的 CKB(Chart Knowledge Base)模块,详细介绍其安装、引入及核心 API,每个方法均给出完整示例代码。


一、安装

# 安装 AVA 核心包,包含 ckb 模块
npm install @antv/ava --save
# 如需单独使用 CKB JSON,也可安装独立包
npm install @antv/ckb --save

二、模块引入

2.1 从 @antv/ava 引入

import { ckb } from '@antv/ava';

2.2 从 @antv/ckb 引入

import { CKBJson } from '@antv/ckb';

两者都能获取完整的知识库 JSON 对象,区别在于前者依赖 AVA 核心包,后者仅含知识库内容 ([npmjs.com][1]) ([npmjs.com][2])。


三、核心 API

3.1 ckb(locale?: string, completed?: boolean): Record<string, ChartInfo>

  • 功能:获取图表知识库对象。

  • 参数

    • locale(可选):语言标识,支持 'en'(默认)或 'zh-CN'
    • completed(可选):是否只返回“已完成”高质量定义,布尔值,默认 false
  • 返回值:以图表 id 为键、ChartInfo 对象为值的字典。

import { ckb } from '@antv/ava';// 默认获取英文版、非“完成度”过滤
const kbEn = ckb();
console.log(Object.keys(kbEn)); 
// ['line_chart', 'bar_chart', 'pie_chart', …]// 获取中文“已完成”版本
const kbZh = ckb('zh-CN', true);
console.log(kbZh['line_chart'].name); 
// '折线图'

3.2 CKBJson(locale?: string, completed?: boolean): Record<string, ChartInfo>

  • 功能:与 ckb 相同,直接从独立包获取知识库。
  • 用法
import { CKBJson } from '@antv/ckb';// 获取中文完整版
const kb = CKBJson('zh-CN', true);
console.log(kb['bar_chart'].def);
/*'柱状图用矩形条的高度(或长度)来表示数据值的大小,适用于展示离散或分组数据的比较。'
*/

四、ChartInfo 对象结构

每个 ChartInfo 包含如下字段:

字段类型含义
idstring图表类型标识,如 line_chart
namestring图表名称
aliasstring[]别名列表
familystring[]所属图表家族,如 ['LineCharts']
defstring图表定义
purposestring[]使用场景,如 ['Trend', 'Comparison']
coordstring[]支持的坐标系,如 ['Cartesian2D']
categorystring[]分类,如 ['Statistic']
shapestring[]图形形状,如 ['Lines']
dataPresArray<Object>数据需求定义
channelstring[]通道,如 ['Position', 'Direction']
recRatestring推荐等级,如 'Recommended'

以上结构基于 @antv/ckb 官方示例 ([npmjs.com][2])。


五、使用示例

5.1 列出所有图表名称

const kb = ckb('en', true);
const names = Object.values(kb).map(item => item.name);
console.log(names);
// ['Line Chart', 'Bar Chart', 'Pie Chart', …]

5.2 按“使用场景”筛选图表

// 筛选出“对比”(Comparison)场景下的所有图表
const comparisonCharts = Object.values(kb).filter(item => item.purpose.includes('Comparison')
);
comparisonCharts.forEach(chart => {console.log(`${chart.name}${chart.def}`);
});

5.3 获取单个图表详情

const lineChart = kb['line_chart'];
console.log(`名称:${lineChart.name}`);
console.log(`定义:${lineChart.def}`);
console.log(`坐标系:${lineChart.coord.join(', ')}`);

六、常见配合场景

  1. 图表推荐引擎:结合 ckb 返回的 purposedataPres 等字段,自定义规则进行推荐。
  2. 多语言文档:通过 locale 参数快速切换中英文知识库。
  3. 可视化教学:利用 aliasfamilyshape 等元信息,动态生成图表词典或教学手册。

七、小结

  • ckbCKBJson 是获取图表知识库的唯一入口,支持中英文与“完成度”过滤。
  • 返回的 ChartInfo 对象涵盖图表的定义、使用场景、坐标系、形状、数据需求等,便于上层做自动化推荐和文档展示。
  • 结合 JavaScript 原生对象操作(Object.keysfiltermap)即可灵活检索和使用知识库。

相关文章:

  • CNS无线电信号覆盖分析系统v0.1
  • 【OpenGL ES】不用GLSurfaceView,如何渲染图像
  • 高性能群集部署技术-LVS+Keepalived高可用群集
  • vue3+elementPlus实现无缝滚动表格封装
  • springboot 接口参数接收,body和param什么区别,分别怎么使用
  • SpringCloud+Vue汽车、单车充电桩源码实现:从架构设计到核心模块解析
  • Prufer序列 学习笔记
  • SNMPv3 的安全命名空间详解
  • 需要做一款小程序,用来发券,后端如何进行设计能够保证足够安全?
  • MySQL 多表查询、事务
  • 交叉熵损失函数的优势
  • Java常见异常详解及解决方案(九)
  • 【Git】关于项目开发分支的使用规范
  • 分库分表之优缺点分析
  • 结合 STM32CubeMX 使用 FreeRTOS 实时操作系统
  • XXE(XML外部实体注入)详解
  • 基于集体智能长尾识别的超声乳腺病变亚型分类|文献速递-深度学习医疗AI最新文献
  • [Jenkins在线安装]
  • 关于机器学习中迁移学习与深度学习的思考
  • CMake基础:常用内部变量和环境变量的引用
  • 在国外服务器上做网站项目如何赚钱/seo推广教学
  • 网站经营性备案难不难/百度查看订单
  • 个人网站模板/汕头网站建设方案开发
  • 有了源码怎么做网站/seo优化培训班
  • 衡阳市网站建设/广州seo排名优化
  • 做游戏网站思想步骤/网络服务费计入什么科目