antv-g2-chart

GitHub

用于创建、定制和调试 AntV G2 v5 图表可视化的技能,支持多种图表类型及 V5 Spec Mode 配置规范。

skills/antv-g2-chart/SKILL.md antvis/chart-visualization-skills

触发场景

用户提到 G2, antv g2, @antv/g2, G2 chart, G2 可视化 请求生成柱状图、折线图、饼图等具体图表 涉及 encode channels, scale config, coordinate systems 等 G2 特定主题 调试 G2 渲染错误或 V4 到 V5 迁移问题

安装

npx skills add antvis/chart-visualization-skills --skill antv-g2-chart -g -y
更多选项

不安装直接使用

npx skills use antvis/chart-visualization-skills@antv-g2-chart

指定 Agent (Claude Code)

npx skills add antvis/chart-visualization-skills --skill antv-g2-chart -a claude-code -g -y

安装 repo 全部 skill

npx skills add antvis/chart-visualization-skills --all -g -y

预览 repo 内 skill

npx skills add antvis/chart-visualization-skills --list

SKILL.md

Frontmatter
{
    "name": "antv-g2-chart",
    "tools": [
        "curl"
    ],
    "description": "Use this skill whenever the user wants to create, customize, or troubleshoot G2 v5 chart visualizations. Triggers include: any mention of 'G2', 'antv g2', '@antv\/g2', 'G2 chart', 'G2 可视化', or requests to produce charts like bar charts (柱状图), line charts (折线图), pie charts (饼图), scatter plots (散点图), area charts (面积图), heatmap (热力图), radar charts (雷达图), treemap (矩形树图), funnel charts (漏斗图), sankey diagrams (桑基图), gauge (仪表盘), wordcloud (词云), boxplot (箱线图), as well as G2-specific topics like encode channels, scale config, coordinate systems, transforms, interactions, themes, labels, and animations. Also use when debugging G2 rendering errors, V4→V5 migration issues, or chart type selection. Do NOT use for G6 graph\/network visualization, X6 editor diagrams, or S2 pivot tables."
}

G2 v5 Chart Visualization

Overview

G2 v5 is AntV's grammar-of-graphics charting library. It uses Spec Mode — a declarative, JSON-like configuration style where chart.options() defines the entire visualization in one call.

import { Chart } from '@antv/g2';

const chart = new Chart({ container: 'container', autoFit: true });
chart.options({
  type: 'interval',
  data: [{ genre: 'Sports', sold: 275 }],
  encode: { x: 'genre', y: 'sold' },
});
chart.render();

CDN Usage

<script src="https://unpkg.com/@antv/g2@5/dist/g2.min.js"></script>
<script>
  const chart = new G2.Chart({ container: 'container', autoFit: true });
  chart.options({
    type: 'interval',
    data: [{ genre: 'Sports', sold: 275 }],
    encode: { x: 'genre', y: 'sold' },
  });
  chart.render();
</script>

Content Retrieval Service

When using AntV G2 for data visualization, if you need to understand the concepts, usage, API, examples, and other aspects of G2 v5, you can use the provided context retrieval service. When using the skill, content is retrieved via an antv HTTP API server using GET requests.

  • Host: https://sive.antv.antgroup.com
  • Endpoint: /api/v1/context/retrieve
  • Method: GET
  • Parameters: query, library, topK, content, maxTokens

Retrieve skills by query (hybrid search = FTS + vector + RRF fusion). Constraints docs are indexed as regular skill documents and will appear in search results naturally.

Parameter Type Required Description
query string Search keywords, e.g. bar chart interval
library string Library name: g2, g6, x6
topK number Number of results to return (default: 5)
content boolean Return full reference doc markdown (default: true)
maxTokens number Max tokens per result (default: unlimited)
curl "https://sive.antv.antgroup.com/api/v1/context/retrieve?query=bar+chart+stacked&library=g2"

Critical Rules

MUST: Use V5 Spec Mode ONLY

// ❌ WRONG — V4 chain API (deprecated, will not render)
chart.interval()
  .data([...])
  .encode('x', 'genre')
  .encode('y', 'sold')
  .style({ radius: 4 });

// ✅ CORRECT — V5 Spec Mode
chart.options({
  type: 'interval',
  data: [...],
  encode: { x: 'genre', y: 'sold' },
  style: { radius: 4 },
});

MUST: chart.options() called exactly ONCE

Multiple calls overwrite each other. For multi-mark overlays, use type: 'view' + children:

// ❌ WRONG — second options() overwrites the first
chart.options({ type: 'line', data, encode: { x: 'date', y: 'value' } });
chart.options({ type: 'point', data, encode: { x: 'date', y: 'value' } });

// ✅ CORRECT — children array for multi-mark
chart.options({
  type: 'view',
  data,
  children: [
    { type: 'line',  encode: { x: 'date', y: 'value' } },
    { type: 'point', encode: { x: 'date', y: 'value' } },
  ],
});

MUST: container is mandatory, chart.render() at the end

// ❌ WRONG — no container, no render
const chart = new Chart();
chart.options({ type: 'interval', data });

// ✅ CORRECT
const chart = new Chart({ container: 'container', autoFit: true });
chart.options({ type: 'interval', data, encode: { x: 'genre', y: 'sold' } });
chart.render();

MUST: Correct mark types only

❌ Hallucinated (from ECharts/Vega) ✅ G2 correct replacement
type: 'ruleX' type: 'lineX'
type: 'ruleY' type: 'lineY'
type: 'regionX' type: 'rangeX'
type: 'regionY' type: 'rangeY'
type: 'venn' type: 'path' + transform

Legal G2 marks: interval, line, area, point, rect, cell, text, image, path, polygon, shape, link, connector, vector, lineX, lineY, rangeX, rangeY, range, box, boxplot, density, heatmap, beeswarm, treemap, pack, partition, tree, sankey, chord, wordCloud, gauge, liquid. sunburst requires @antv/g2-extension-plot.

MUST: encode is an object, transform is an array

// ❌ WRONG
.encode('x', 'genre')
.transform: { type: 'stackY' }

// ✅ CORRECT
encode: { x: 'genre', y: 'sold' }
transform: [{ type: 'stackY' }]

MUST: labels is plural, range encoding uses y/y1

// ❌ WRONG
label: { text: 'sold' }
encode: { y: ['start', 'end'] }

// ✅ CORRECT
labels: [{ text: 'sold' }]
encode: { y: 'start', y1: 'end' }

MUST: No d3 in user code

// ❌ WRONG — d3 is not exposed in user scope
const total = d3.sum(data, d => d.value);

// ✅ CORRECT — use native JS or G2 built-in transforms
const total = data.reduce((sum, d) => sum + d.value, 0);

MUST: No white/near-white fill, no padding as array

// ❌ WRONG
style: { fill: '#fff' }       // invisible on white background
padding: [40, 30, 40, 50]     // invalid in G2 v5

// ✅ CORRECT
encode: { color: 'group' }    // let G2 assign colors
padding: 40                   // single number or 'auto'

MUST: Transpose is a transform, not a coordinate type

// ❌ WRONG
coordinate: { type: 'transpose' }

// ✅ CORRECT
coordinate: { transform: [{ type: 'transpose' }] }

Quick Reference

User Intent Retrieve Query
Chart initialization, container, autoFit GET /api/v1/context/retrieve?query=chart+init&library=g2
Bar / column chart GET /api/v1/context/retrieve?query=bar+chart+interval&library=g2
Line / area chart GET /api/v1/context/retrieve?query=line+area+chart&library=g2
Pie / donut / rose chart GET /api/v1/context/retrieve?query=pie+chart+theta&library=g2
Scatter / bubble GET /api/v1/context/retrieve?query=scatter+point+bubble&library=g2
Treemap / sunburst / pack GET /api/v1/context/retrieve?query=treemap+sunburst+pack&library=g2
Heatmap / density / boxplot GET /api/v1/context/retrieve?query=heatmap+density+boxplot&library=g2
Funnel / gauge / wordcloud GET /api/v1/context/retrieve?query=funnel+gauge+wordcloud&library=g2
Encode channels (x, y, color, size) GET /api/v1/context/retrieve?query=encode+channel&library=g2
Scale / palette / color range GET /api/v1/context/retrieve?query=scale+palette+color&library=g2
Coordinate (polar, theta, transpose) GET /api/v1/context/retrieve?query=coordinate+polar+theta+transpose&library=g2
Transform (stack, normalize, sort) GET /api/v1/context/retrieve?query=transform+stack+normalize&library=g2
Axis / legend / tooltip / labels GET /api/v1/context/retrieve?query=axis+legend+tooltip+label&library=g2
Interaction (brush, highlight, drilldown) GET /api/v1/context/retrieve?query=interaction+brush+highlight&library=g2
Theme / dark mode GET /api/v1/context/retrieve?query=theme+dark+classicDark&library=g2
Animation GET /api/v1/context/retrieve?query=animation+animate&library=g2
Data fetch / filter / sort GET /api/v1/context/retrieve?query=data+fetch+filter+sort&library=g2
Facet / view composition GET /api/v1/context/retrieve?query=facet+view+composition&library=g2
Chart type selection guide GET /api/v1/context/retrieve?query=chart+type+selection&library=g2
Rendering troubleshoot GET /api/v1/context/retrieve?query=rendering+troubleshoot+debug&library=g2

Dependencies

  • @antv/g2 — G2 v5 charting engine

版本历史

  • dc3a46d 当前 2026-09-09 06:53

    移除 context retrieval API 中的 progressiveLevel 参数。

  • d168980 2026-08-19 23:45

    新增 HTTP Context Service 以支持通过 API 检索 G2 v5 文档上下文;更新 README 并移除 S2 相关技能;优化评估流程与依赖项。

  • 62ea33c 2026-07-25 05:31

同 Skill 集合

.github/skills/antv-skills-maintainer/SKILL.md
skills/antv-s2-expert/SKILL.md
skills/chart-visualization/SKILL.md
skills/gpt-vis/SKILL.md
skills/icon-retrieval/SKILL.md
skills/infographic-creator/SKILL.md
skills/narrative-text-visualization/SKILL.md
skills/antv-g6-graph/SKILL.md
skills/antv-x6-editor/SKILL.md

元信息

文件数
0
版本
dc3a46d
Hash
73e26880
收录时间
2026-07-25 05:31

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 23:01
浙ICP备14020137号-1