Antv G6 Graph

by antvisa105fa12a9faNo license506 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 2 weeks ago

Use this skill whenever the user wants to create, customize, or troubleshoot G6 v5 graph/network visualizations. Triggers include: any mention of 'G6', 'antv g6', '@antv/g6', 'G6 graph', 'G6 图', '网络图', '关系图', '拓扑图', '树形图', '流程图', '思维导图', '鱼骨图', '力导向图', 'force graph', 'network visualization', 'node-edge diagram', 'graph layout', 'tree layout', 'dagre layout', 'mindmap', 'social network', or requests about G6 node styles, edge types, behaviors, plugins, layouts, combos, or data structures. Also use when debugging G6 rendering errors, v4→v5 migration, or graph interaction issues. Do NOT use for G2 statistical charts, X6 editor diagrams, or S2 pivot tables.

AI-generated overview

Guides creation, customization, and debugging of AntV G6 v5 graph and network visualizations.

What it does
This skill provides instructions for building and troubleshooting G6 v5 graph visualizations such as network, tree, mindmap, and flow diagrams. It documents the v5 declarative constructor style, data format, label styling, layout options, behaviors, and common v4-to-v5 migration mistakes. It also describes an HTTP context retrieval service for looking up G6 documentation and examples.
When to use it
Use it when a user wants to create, customize, or debug G6 v5 graph or network visualizations, including layouts, node and edge styles, behaviors, plugins, and combos. It also applies to v4-to-v5 migration questions and graph interaction issues. It is not intended for G2 statistical charts, X6 editor diagrams, or S2 pivot tables.
Requirements
Requires the @antv/g6 v5 package for the described code, and network access to the AntV context retrieval HTTP API (host sive.antv.antgroup.com) for documentation lookups. The skill ships no scripts; it is instructions only.

G6 v5 Graph Visualization

Overview

G6 v5 is AntV's graph visualization engine for network diagrams, tree graphs, and relationship visualizations. It uses a declarative configuration style where new Graph({...}) defines all nodes, edges, layouts, behaviors, and plugins in one constructor call.

javascript
import { Graph } from '@antv/g6';
const graph = new Graph({  container: 'container',  data: {    nodes: [{ id: 'node-1', style: { labelText: 'Node 1' } }],    edges: [{ source: 'node-1', target: 'node-2' }],  },  layout: { type: 'force' },  behaviors: ['drag-canvas', 'zoom-canvas', 'drag-element'],});
await graph.render();

CDN Usage

html
<script src="https://unpkg.com/@antv/g6@5/dist/g6.min.js"></script><script>  const graph = new G6.Graph({    container: 'container',    data: {      nodes: [{ id: 'node-1', style: { labelText: 'Node 1' } }],      edges: [{ source: 'node-1', target: 'node-2' }],    },    layout: { type: 'force' },    behaviors: ['drag-canvas', 'zoom-canvas', 'drag-element'],  });  graph.render();</script>

Content Retrieval Service

When using AntV G6 for data visualization, if you need to understand the concepts, usage, API, examples, and other aspects of G6 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.

ParameterTypeRequiredDescription
querystring✅Search keywords, e.g. force layout node
librarystring✅Library name: g2, g6, x6
topKnumberNumber of results to return (default: 5)
contentbooleanReturn full reference doc markdown (default: true)
maxTokensnumberMax tokens per result (default: unlimited)
bash
curl "https://sive.antv.antgroup.com/api/v1/context/retrieve?query=force+layout+node+style&library=g6"

Critical Rules

MUST: Use new Graph({...}) — NOT v4 new G6.Graph()

javascript
// ❌ WRONG — v4 constructornew G6.Graph({ container: 'container', ... });
// ✅ CORRECT — v5 constructorimport { Graph } from '@antv/g6';new Graph({ container: 'container', ... });

MUST: All config in one constructor call, await graph.render()

javascript
// ❌ WRONG — v4 separate data methodgraph.data(data);graph.render();
// ✅ CORRECT — v5 declarative config + async renderconst graph = new Graph({  container: 'container',  data: { nodes: [...], edges: [...] },  layout: { type: 'force' },  behaviors: ['drag-canvas', 'zoom-canvas'],});await graph.render();

MUST: Data format with id, source, target

javascript
// ❌ WRONG — missing node id, missing edge endpointsconst data = { nodes: [{ label: 'A' }], edges: [{ from: 'A', to: 'B' }] };
// ✅ CORRECT — each node has unique id, each edge has source/targetconst data = {  nodes: [{ id: 'node-1', style: { labelText: 'A' } }],  edges: [{ source: 'node-1', target: 'node-2' }],};

MUST: Use style.labelText for labels — NOT label or labelCfg

javascript
// ❌ WRONG — v4 label confignode: { labelCfg: { text: 'Node 1' } }
// ✅ CORRECT — v5 style.labelTextnode: { style: { labelText: 'Node 1' } }

MUST: nodeStrength must be ≥ 0 in force layout

javascript
// ❌ WRONG — negative nodeStrength causes unpredictable behaviorlayout: { type: 'force', nodeStrength: -300 }
// ✅ CORRECT — non-negative valuelayout: { type: 'force', nodeStrength: 300 }

MUST: force layout does NOT support preventOverlap / nodeSize

javascript
// ❌ WRONG — v4 params silently ignored in v5layout: { type: 'force', preventOverlap: true, nodeSize: 30 }
// ✅ CORRECT — use d3-force collide for overlap preventionlayout: { type: 'd3-force', collide: { radius: 30 } }

MUST: No Mode concept — behaviors are flat array

javascript
// ❌ WRONG — v4 mode-based behavior configmodes: { default: ['drag-canvas', 'zoom-canvas'] }
// ✅ CORRECT — v5 flat behavior arraybehaviors: ['drag-canvas', 'zoom-canvas', 'drag-element']

MUST: container is mandatory, default 'container'

javascript
// ❌ WRONG — no container specifiedconst graph = new Graph({ data });
// ✅ CORRECTconst graph = new Graph({ container: 'container', data, ... });

Quick Reference

User IntentRetrieve Query
Graph initialization, container, renderGET /api/v1/context/retrieve?query=graph+init+render&library=g6
Network / force graphGET /api/v1/context/retrieve?query=network+force+layout&library=g6
Tree / mindmap / fishboneGET /api/v1/context/retrieve?query=tree+mindmap+fishbone+layout&library=g6
Dagre / hierarchy / flow chartGET /api/v1/context/retrieve?query=dagre+hierarchy+flow+chart&library=g6
Circular / radial / grid layoutGET /api/v1/context/retrieve?query=circular+radial+grid+layout&library=g6
Node styles (rect, circle, diamond, html)GET /api/v1/context/retrieve?query=node+style+rect+circle+diamond+html&library=g6
Edge types (line, cubic, polyline, loop)GET /api/v1/context/retrieve?query=edge+line+cubic+polyline+loop&library=g6
Combo / group nodesGET /api/v1/context/retrieve?query=combo+group+node&library=g6
Custom node / edgeGET /api/v1/context/retrieve?query=custom+node+edge+element&library=g6
Behaviors (drag, zoom, click-select, hover)GET /api/v1/context/retrieve?query=behavior+drag+zoom+click-select+hover&library=g6
Plugins (minimap, tooltip, toolbar, legend)GET /api/v1/context/retrieve?query=plugin+minimap+tooltip+toolbar+legend&library=g6
Events systemGET /api/v1/context/retrieve?query=events+system+click+mouse&library=g6
State / style animationGET /api/v1/context/retrieve?query=state+animation+transform&library=g6
Data structure / transformsGET /api/v1/context/retrieve?query=data+structure+transforms&library=g6
Theme / backgroundGET /api/v1/context/retrieve?query=theme+background+style&library=g6
Lasso select / collapse-expandGET /api/v1/context/retrieve?query=lasso+collapse+expand+select&library=g6

Dependencies

  • @antv/g6 — G6 v5 graph visualization engine

Source and attribution

Source:antvis/chart-visualization-skillsinskills/antv-g6-graphat commita105fa1

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal