logo

G2

  • Docs
  • Chart Introduction
  • API
  • Examples
  • Theme
  • Ecosystem
  • Productsantv logo arrow
  • 5.3.3
  • Get Started
  • Introduction
    • What is G2
    • Use In Framework
    • Experimental Spec API
  • Core Concepts
    • Chart
      • Components of G2 Charts
      • How to Use Charts
    • Mark
      • overview
      • area
      • box
      • boxplot
      • cell
      • chord
      • density
      • gauge
      • heatmap
      • image
      • interval
      • line
      • lineX
      • lineY
      • link
      • liquid
      • sunburst
      • point
      • polygon
      • range
      • rangeX
      • rangeY
      • rect
      • shape
      • text
      • vector
      • wordCloud
    • View
    • Data
      • overview
      • custom
      • ema
      • fetch
      • filter
      • fold
      • inline
      • join
      • kde
      • log
      • map
      • pick
      • rename
      • slice
      • sort
      • sortBy
    • Encode
    • Scale
      • overview
      • band
      • linear
      • log
      • ordinal
      • point
      • pow
      • quantile
      • quantize
      • sqrt
      • threshold
      • time
    • Transform
      • overview
      • bin
      • binX
      • diffY
      • dodgeX
      • flexX
      • group
      • groupColor
      • groupX
      • groupY
      • jitter
      • jitterX
      • jitterY
      • normalizeY
      • pack
      • sample
      • select
      • selectX
      • selectX
      • sortColor
      • sortX
      • sortY
      • stackEnter
      • stackY
      • symmetryY
    • Coordinate
      • overview
      • fisheye
      • parallel
      • polar
      • radial
      • theta
      • transpose
      • cartesian3D
      • helix
    • Style
    • Animate
      • overview
      • fadeIn
      • fadeOut
      • growInX
      • growInY
      • morphing
      • pathIn
      • scaleInX
      • scaleInY
      • scaleOutX
      • scaleOutY
      • waveIn
      • zoomIn
      • zoomOut
    • State
    • Interaction
      • Overview
      • brushAxisHighlight
      • brushHighlight
      • brushXHighlight
      • brushYHighlight
      • brushFilter
      • brushXFilter
      • brushYFilter
      • chartIndex
      • elementHighlight
      • elementHighlightByColor
      • elementHighlightByX
      • elementSelect
      • elementSelectByColor
      • elementSelectByX
      • fisheye
      • legendFilter
      • legendHighlight
      • poptip
      • scrollbarFilter
      • sliderFilter
    • Composition
      • overview
      • facetCircle
      • facetRect
      • repeatMatrix
      • spaceFlex
      • spaceLayer
      • timingKeyframe
    • Theme
      • overview
      • Academy
      • classic
      • classicDark
    • event
    • Color
  • Chart API
  • Chart Component
    • 标题(Title)
    • Axis
    • Legend
    • Scrollbar
    • Slider
    • Tooltip
    • Label
  • Extra Topics
    • Graph
      • forceGraph
      • pack
      • sankey
      • tree
      • treemap
    • Geo
      • geoPath
      • geoView
    • 3D
      • Draw 3D Chart
      • point3D
      • line3D
      • interval3D
      • surface3D
    • Plugin
      • renderer
      • rough
      • lottie
      • a11y
    • Package on demand
    • Set pattern
    • Server-side rendering(SSR)
    • Spec Function Expression Support (Available in 5.3.0)
  • Whats New
    • New Version Features
    • Migration from v4 to v5
  • Frequently Asked Questions (FAQ)

What is G2

Previous
Get Started
Next
Use In Framework

Resources

Ant Design
Galacea Effects
Umi-React Application Framework
Dumi-Component doc generator
ahooks-React Hooks Library

Community

Ant Financial Experience Tech
seeconfSEE Conf-Experience Tech Conference

Help

GitHub
StackOverflow

more productsMore Productions

Ant DesignAnt Design-Enterprise UI design language
yuqueYuque-Knowledge creation and Sharing tool
EggEgg-Enterprise-class Node development framework
kitchenKitchen-Sketch Tool set
GalaceanGalacean-互动图形解决方案
xtechLiven Experience technology
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

G2 It is a concise progressive syntax mainly used for making web-based visualizations. It provides a set of functional style, declarative API and component programming paradigm, hoping to help users quickly complete dashboard building 、data exploration 、storytelling and other diverse needs.

This article will give you a brief introduction to the core concepts of G2:

  • Mark: Draw data-driven graphics
  • Transform: Derived data
  • Scale: Mapping abstract data into visual data
  • Coordinate system: applies point transformation to the spatial channel
  • View composition (Composition): Manage and enhance views
  • Animation: Data-driven animation and continuous deformation animation
  • Interaction: Manipulate the view and display detailed information

"Talk is cheap, show me the code", then let's take a look at what visualization effects G2 can make based on the following simple data set.

table({
url: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
});

Tips

In the documentation on the G2 official website, specific code blocks will mount the DOM they return and display them on the web page.

(() => {
const chart = new G2.Chart();
// ...
return chart.getContainer(); // Mount the container for the chart
})();

This is the syntax for a specific operating environment on the G2 official website. Please refer to G2 when using it in actual projects.Get Started。

Mark

Mark It is the smallest visual unit in G2. All charts in G2 are composed of different markers.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.point()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'weight')
.encode('y', 'height')
.encode('color', 'gender');
chart.render();

Transform

Transform will change the display form of data and marks, and is mostly used for data analysis.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.rect()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'height')
.encode('color', 'gender')
.transform({ type: 'binX', y: 'count' })
.transform({ type: 'stackY' })
.style('insetLeft', 1);
chart.render();

Scale

Scale is used to control the visual style of markup.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.rect()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'height')
.encode('color', 'gender')
.transform({ type: 'binX', y: 'count' })
.transform({ type: 'stackY' })
.scale('color', { range: ['steelblue', 'orange'] })
.scale('y', { nice: true })
.style('insetLeft', 1);
chart.render();

Coordinate system

Coordinate System will change the display format of the chart.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.rect()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'height')
.encode('color', 'gender')
.transform({ type: 'binX', y: 'count' })
.transform({ type: 'stackY' })
.scale('color', { range: ['steelblue', 'orange'] })
.scale('y', { type: 'sqrt', nice: true })
.coordinate({ type: 'polar' })
.axis('y', { title: false })
.style('insetLeft', 1);
chart.render();

View composition (Composition)

View composition is used to create multi-view diagrams.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
paddingLeft: 60,
});
const facet = chart
.facetRect()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('y', 'gender');
facet
.rect()
.encode('x', 'height')
.encode('color', 'gender')
.transform({ type: 'binX', y: 'count' })
.transform({ type: 'stackY' })
.scale('y', { nice: true })
.attr('frame', false)
.style('insetLeft', 1);
chart.render();

Animation

Animation supports group animation and keyframe animation. You can click the run button on the left to see the effect.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.rect()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'height')
.encode('color', 'gender')
.encode('enterDuration', 1000)
.transform({ type: 'stackEnter', groupBy: ['color'] })
.transform({ type: 'binX', y: 'count' })
.transform({ type: 'stackY' })
.style('insetLeft', 1);
chart.render();

import { Chart } from '@antv/g2';
(async () => {
const data = await fetch(
'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
).then((res) => res.json());
const chart = new Chart({
container: 'container',
});
const keyframe = chart
.timingKeyframe()
.attr('direction', 'alternate')
.attr('iterationCount', 4);
keyframe
.interval()
.attr('padding', 'auto')
.data(data)
.encode('x', 'gender')
.encode('color', 'gender')
.encode('key', 'gender')
.transform({ type: 'groupX', y: 'count' });
keyframe
.point()
.attr('padding', 'auto')
.data(data)
.encode('x', 'weight')
.encode('y', 'height')
.encode('color', 'gender')
.encode('groupKey', 'gender')
.encode('shape', 'point');
chart.render();

Interaction

Interactions can explore data on demand.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart
.point()
.data({
type: 'fetch',
value: 'https://gw.alipayobjects.com/os/antvdemo/assets/data/scatter.json',
})
.encode('x', 'weight')
.encode('y', 'height')
.encode('color', 'gender')
.encode('shape', 'point')
.style({
fillOpacity: 0.7,
transform: 'scale(1, 1)',
transformOrigin: 'center center',
})
.state('inactive', {
fill: 'black',
fillOpacity: 0.5,
transform: 'scale(0.5, 0.5)',
})
.interaction('brushXHighlight', true);
chart.render();

More capabilities

Because G2's marks are composable and provide a mechanism for creating composite marks to extend G2, you can quickly create virtually any visualization. On the Case page, you can find more inspiration, and the documentation offers a comprehensive understanding of G2's capabilities.