
AntV 信息图
当用户希望把文本、数据或知识整理成强调叙事与版式的可编辑 SVG 信息图,或明确要求 AntV Infographic 时,使用此 Skill。该库擅长:条形图、柱状图、折线图、饼图、环形图、词云;二元对比图、层级对比图、象限对比图、SWOT 图;思维导图、组织结构图、层级树图;纵向列表、横向列表、网格列表、金字塔列表、扇区列表、瀑布列表、折线列表;环形关系图、DAG 关系图、网络关系图;上升序列图、圆环序列图、彩色序列图、圆柱序列图、筛选序列图、漏斗序列图、横向序列图、多角色交互图、山峰序列图、金字塔序列图、路线图、蛇形步骤图、阶梯图、步骤图、时间线、折返序列图。不要用于以坐标轴分析为核心的仪表盘、软件架构图或通用网页视觉设计。
Skill 文件
| name | infographic-creator |
|---|---|
| title | AntV 信息图 |
| description | 当用户希望把文本、数据或知识整理成强调叙事与版式的可编辑 SVG 信息图,或明确要求 AntV Infographic 时,使用此 Skill。该库擅长:条形图、柱状图、折线图、饼图、环形图、词云;二元对比图、层级对比图、象限对比图、SWOT 图;思维导图、组织结构图、层级树图;纵向列表、横向列表、网格列表、金字塔列表、扇区列表、瀑布列表、折线列表;环形关系图、DAG 关系图、网络关系图;上升序列图、圆环序列图、彩色序列图、圆柱序列图、筛选序列图、漏斗序列图、横向序列图、多角色交互图、山峰序列图、金字塔序列图、路线图、蛇形步骤图、阶梯图、步骤图、时间线、折返序列图。不要用于以坐标轴分析为核心的仪表盘、软件架构图或通用网页视觉设计。 |
信息图(Infographic)将数据、信息与知识转化为可感知的视觉语言。它结合视觉设计与数据可视化,用直观符号压缩复杂信息,帮助受众快速理解并记住要点。
Infographic = Information Structure + Visual Expression
本任务使用 创建可视化信息图。
在开始任务前,需要理解 AntV Infographic 语法规范,包括模板列表、数据结构、主题等。
Language Lock
- Prompt 的书写语言和示例语言不能决定最终输出语言。
- 如果用户输入英文,则生成的
title、desc、label等文案必须保持英文,不要自动翻译成中文。 - 如果用户输入中文,则生成的
title、desc、label等文案必须保持中文,不要自动翻译成英文。
规范
AntV Infographic 语法
AntV Infographic 语法是一种自定义 DSL,用于描述信息图渲染配置。它使用缩进表达结构,适合 AI 直接生成并流式输出。核心信息包括:
- template:用模板表达信息结构。
- data:信息图数据,包含
title、desc和主数据字段。 - theme:主题配置,包含
palette、字体、风格化等。
例如:
infographic list-row-horizontal-icon-arrowdata title Title desc Description lists - label Label value 12.5 desc Explanation icon document texttheme palette #3b82f6 #8b5cf6 #f97316硬性语法规则
- 第一行必须是
infographic <template-name>。 - 模板列表里只写模板名本身;真正输出时首行必须显式写出
infographic前缀。 - 使用
data/theme块,块内统一使用两个空格缩进。 - 键值对写法是
键 空格 值;对象数组使用-作为条目前缀。 icon可以使用精确图标 ID,例如mingcute/server-line,也可以使用语义关键词短语,例如star fill。- 如果使用语义关键词短语,多个关键词之间使用空格分隔,不要使用短横线;例如写
rocket launch,不要写rocket-launch。 - 对
lists、sequences、nodes、items以及compares/children下的语义型数据项,默认应补充icon;不要因为字段是可选就省略。 - 如果模板名或视觉样式明显依赖图标,则每个主要数据项都应包含
icon。 - 如果不确定精确图标 ID,也要优先写一个简洁的语义关键词,例如
rocket、shield、database、users、chart line,而不是省略icon字段。 - 仅在纯图表类数据点、纯数值序列,或用户明确要求极简文本版时,才可以省略
icon。 value尽量使用纯数值;数值单位优先放在label或desc中表达。palette推荐使用行内简单数组写法,例如palette #4f46e5 #06b6d4 #10b981。palette中的颜色值是裸值,不加引号,不加逗号。data只放一个与模板匹配的主数据字段,避免同时混用lists、sequences、compares、values、root、nodes。
主数据字段选择规则:
list-*→listssequence-*→sequences,可选order asc|descsequence-interaction-*→sequences+relationssequences表示泳道列表- 每个泳道必须包含
label - 每个泳道的
children表示节点列表 children下的每一项都必须写成对象条目,并包含label- 节点可选
id、icon、step、desc、value step用于表示时间层级;相同step处于同一高度
compare-*→comparescompare-binary-*/compare-hierarchy-left-right-*compares第一层必须且只能有两个根节点,分别表示对比双方- 两个根节点都应包含
children - 真正的对比项写在各自的
children下 children下的每一项都必须写成对象条目,并包含label- 即使每一侧只有 1 个指标,也要写成
children内含 1 个对象条目
compare-swotcompares可直接放多个根节点- 每个根节点下可选
children
compare-quadrant-*compares直接放 4 个象限根节点
hierarchy-structure→itemshierarchy-*→ 单一root,通过children递归嵌套relation-*→nodes+relations- 简单关系也可直接用箭头语法表达关系
chart-*→valueschart-line-plain-text/chart-bar-plain-text/chart-column-simple都使用单条有序values- 每个数据点使用
label表示类目,使用value表示数值 - 折线图的顺序由
values中条目的排列顺序表达
- 结构无法明确判断时,再用
items兜底
主题规则:
theme用于自定义主题,例如palette、base、stylize- 使用
theme.base.text.font-family指定字体,如851tegakizatsu - 使用
theme.stylize选择内置风格并传参rough:手绘效果pattern:图案填充linear-gradient/radial-gradient:渐变风格
- 仅输出 Infographic 语法本身,不输出 JSON、解释性文字或额外 Markdown 段落
数据语法示例
按模板类别给出精简但完整的正向示例:
list-*模板
infographic list-grid-badge-carddata title Feature List lists - label Fast icon flash fast - label Secure icon shield checksequence-*模板
infographic sequence-ascending-stepsdata title 发布流程 sequences - label 需求确认 icon clipboard check - label 开发实现 icon code - label 发布上线 icon rocket order ascsequence-interaction-*模板
infographic sequence-interaction-compact-animated-badge-carddata title 登录校验流程 sequences - label 用户 icon user children - label 发起登录 id user-login step 0 icon login - label 收到结果 id user-result step 2 icon inbox check - label 服务端 icon server children - label 校验凭证 id server-verify step 1 icon shield check - label 返回结果 id server-return step 2 icon send relations user-login - 提交账号密码 -> server-verify server-verify - 生成结果 -> server-return server-return - 返回结果 -> user-resulthierarchy-*模板
infographic hierarchy-tree-curved-line-rounded-rect-nodedata title 组织结构 root label 公司 children - label 产品部 - label 技术部compare-swot模板
infographic compare-swotdata title 产品 SWOT compares - label Strengths icon trophy children - label 品牌认知高 icon star - label Weaknesses icon alert circle children - label 成本压力大 icon walletcompare-binary-*模板
infographic compare-binary-horizontal-simple-folddata title 餐桌价格对比 compares - label 原价 icon tag children - label 原价 value 500 icon tag - label 实际支付 icon wallet children - label 实际支付 value 450 icon check boldcompare-quadrant-*模板
infographic compare-quadrant-quarter-simple-carddata title 任务优先级 compares - label 高价值低成本 - label 高价值高成本 - label 低价值低成本 - label 低价值高成本chart-line-plain-text模板
infographic chart-line-plain-textdata title 模型 A 准确率变化 desc 第 4 周提升最明显 values - label Week1 value 86.5 - label Week2 value 87.3 - label Week3 value 89.1 - label Week4 value 91.2theme palette #4f46e5 #db2777 #14b8a6relation-*模板
infographic relation-dagre-flow-tb-simple-circle-nodedata title 系统关系 nodes - label API - id db label DB relations API - 读写 -> db- 兜底
items示例
infographic list-row-horizontal-icon-arrowdata title 要点总结 items - label 效率优先 desc 聚焦关键动作 - label 结果导向 desc 输出可执行结论可用模板
- chart-bar-plain-text
- chart-column-simple
- chart-line-plain-text
- chart-pie-compact-card
- chart-pie-donut-pill-badge
- chart-pie-donut-plain-text
- chart-pie-plain-text
- chart-wordcloud
- compare-binary-horizontal-badge-card-arrow
- compare-binary-horizontal-simple-fold
- compare-binary-horizontal-underline-text-vs
- compare-hierarchy-left-right-circle-node-pill-badge
- compare-quadrant-quarter-circular
- compare-quadrant-quarter-simple-card
- compare-swot
- hierarchy-mindmap-branch-gradient-capsule-item
- hierarchy-mindmap-level-gradient-compact-card
- hierarchy-structure
- hierarchy-tree-curved-line-rounded-rect-node
- hierarchy-tree-tech-style-badge-card
- hierarchy-tree-tech-style-capsule-item
- list-column-done-list
- list-column-simple-vertical-arrow
- list-column-vertical-icon-arrow
- list-grid-badge-card
- list-grid-candy-card-lite
- list-grid-ribbon-card
- list-row-horizontal-icon-arrow
- list-sector-plain-text
- list-waterfall-badge-card
- list-waterfall-compact-card
- list-zigzag-down-compact-card
- list-zigzag-down-simple
- list-zigzag-up-compact-card
- list-zigzag-up-simple
- relation-dagre-flow-tb-animated-badge-card
- relation-dagre-flow-tb-animated-simple-circle-node
- relation-dagre-flow-tb-badge-card
- relation-dagre-flow-tb-simple-circle-node
- sequence-ascending-stairs-3d-underline-text
- sequence-ascending-steps
- sequence-circular-simple
- sequence-color-snake-steps-horizontal-icon-line
- sequence-cylinders-3d-simple
- sequence-filter-mesh-simple
- sequence-funnel-simple
- sequence-horizontal-zigzag-underline-text
- sequence-mountain-underline-text
- sequence-pyramid-simple
- sequence-roadmap-vertical-plain-text
- sequence-roadmap-vertical-simple
- sequence-snake-steps-compact-card
- sequence-snake-steps-simple
- sequence-snake-steps-underline-text
- sequence-stairs-front-compact-card
- sequence-stairs-front-pill-badge
- sequence-timeline-rounded-rect-node
- sequence-timeline-simple
- sequence-zigzag-pucks-3d-simple
- sequence-zigzag-steps-underline-text
- sequence-interaction-default-badge-card
- sequence-interaction-default-animated-badge-card
- sequence-interaction-default-compact-card
- sequence-interaction-default-capsule-item
- sequence-interaction-default-rounded-rect-node
模板选择建议
- 严格顺序、步骤推进、阶段演进 →
sequence-* - 多角色或多系统交互 →
sequence-interaction-* - 并列要点列举 →
list-row-*/list-column-*/list-grid-* - 双方对比、方案对比、前后对比 →
compare-binary-*- 先确定双方是谁
- 再为双方分别展开
children
- SWOT 分析 →
compare-swot - 象限分析 →
compare-quadrant-* - 层级树结构 →
hierarchy-tree-* - 统计趋势、单条序列变化 →
chart-line-plain-text - 统计对比、单组数值比较 →
chart-bar-plain-text/chart-column-simple - 节点关系、流程依赖 →
relation-* - 词频主题展示 →
chart-wordcloud - 思维导图 →
hierarchy-mindmap-*
完整输出示例
infographic list-row-horizontal-icon-arrowdata title 产品增长要点 desc 聚焦获客、转化、复购三个阶段 lists - label 获客 desc 多渠道投放与内容触达 icon rocket launch - label 转化 desc 优化路径并减少流失 icon chart line - label 复购 desc 会员权益与分层运营 icon repeattheme palette #3b82f6 #8b5cf6 #f97316输出格式
只输出一个 plain 代码块,不添加任何解释性文字:
infographic list-row-horizontal-icon-arrowdata title 标题 desc 描述 lists - label 条目 value 12.5 desc 说明 icon document texttheme palette #3b82f6 #8b5cf6 #f97316自检清单
输出前检查以下事项:
- 首行是否为
infographic <template-name> - 是否只使用了一个与模板匹配的主数据字段
- 主要数据项是否都带有合理的
icon,尤其是列表、步骤、节点、对比项与名称中含icon的模板 palette是否为裸颜色值,且没有引号和逗号sequence-interaction-*的泳道节点是否都写成children -> - label ...compare-binary-*/compare-hierarchy-left-right-*是否只有两个根节点,且两侧内容都放在各自的children下children下的每一项是否都显式包含labelchart-line-plain-text是否使用单条有序values- 输出中是否没有 JSON、解释文字或多余代码块
生成流程
第一步:理解用户需求
在创建信息图之前,先理解用户需求与想表达的信息,以便确定模板和数据结构。
若用户提供清晰的内容描述,应将其拆解为清晰、简洁的结构。
否则需要向用户澄清(如:“请提供清晰简洁的内容描述。”、“你希望使用哪个模板?”)
- 提取关键信息结构(title、desc、items 等)。
- 明确所需数据字段(title、desc、items、label、value、icon 等)。
- 对语义明确的主要数据项主动补充
icon,不要等用户单独提醒。 - 选择合适模板。
- 使用 AntV Infographic 语法描述信息图内容
{syntax}。
关键注意:必须尊重用户输入的语言。例如用户输入中文,则语法中的文本也必须是中文。
第二步:渲染信息图
当得到最终的 AntV Infographic 语法后,可按以下步骤生成完整 HTML 文件:
- 创建包含以下结构的完整 HTML 文件:
- DOCTYPE 与 HTML meta(charset: utf-8)
- Title:
{title} - Infographic - 引入 AntV Infographic 脚本:
https://cdn.jsdmirror.com/npm/@antv/infographic@latest/dist/infographic.min.js - 创建 id 为
container的容器 div - 初始化 Infographic(
width: '100%'、height: '100%') - 用实际标题替换
{title} - 用实际 AntV Infographic 语法替换
{syntax} - 加入导出 SVG 的功能:
const svgDataUrl = await infographic.toDataURL({ type: 'svg' });
可参考的 HTML 模板:
<div id="container"></div><script src="https://cdn.jsdmirror.com/npm/@antv/infographic@latest/dist/infographic.min.js"></script><script> const infographic = new AntVInfographic.Infographic({ container: '#container', width: '100%', height: '100%', }); infographic.render(`{syntax}`); document.fonts?.ready.then(() => { infographic.render(`{syntax}`); }).catch((error) => console.error('Error waiting for fonts to load:', error));</script>-
使用 Write 工具生成 HTML 文件,命名为
<title>-infographic.html -
展示给用户:
- 生成文件路径,并提示:“直接用浏览器打开即可查看并保存 SVG”
- 输出语法,并提示:“需要调整模板/配色/内容请告诉我”
注意:HTML 文件必须包含:
- 通过导出按钮实现 SVG 导出
- 容器自适应,宽高均为 100%