logo

G2

  • Chart Gallery
  • Docs
  • Examples
  • Theme
  • Ecosystem
  • Productsantv logo arrow
  • 5.3.3
  • Get Started
  • Introduction
    • What is G2
    • Using in Frontend Frameworks
    • Experimental Spec API
  • Chart 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
      • connector
      • 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
      • quantile
      • quantize
      • sqrt
      • threshold
      • time
      • pow
    • Transform
      • Overview
      • bin
      • binX
      • diffY
      • dodgeX
      • flexX
      • group
      • groupColor
      • groupX
      • groupY
      • jitter
      • jitterX
      • jitterY
      • normalizeY
      • pack
      • sample
      • select
      • selectX
      • selectY
      • sortColor
      • sortX
      • sortY
      • stackEnter
      • stackY
      • symmetryY
    • Coordinate
      • Overview
      • fisheye
      • parallel
      • polar
      • theta
      • transpose
      • radial
      • 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
      • legendFilter
      • legendHighlight
      • poptip
      • scrollbarFilter
      • sliderFilter
      • fisheye
    • Composition
      • Overview
      • facetCircle
      • facetRect
      • repeatMatrix
      • spaceFlex
      • spaceLayer
      • timingKeyframe
    • Theme
      • Overview
      • academy
      • classic
      • classicDark
    • Events
    • Color Mapping
  • Chart Component
    • Title
    • Axis
    • Legend
    • Scrollbar
    • Slider
    • Tooltip
    • Data 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)

pack

Previous
normalizeY
Next
sample

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...

Overview

pack is a grid layout transform that allows graphical elements to be compactly arranged in a container space according to a row-column structure. The pack transform works through the following main steps:

  1. Calculate the optimal arrangement grid (number of rows and columns) based on the container's aspect ratio and number of elements
  2. Arrange elements in the grid according to the specified direction (row-first or column-first)
  3. Apply scaling and translation transforms to each element to fit the grid cells while maintaining appropriate spacing

Use Cases

The pack transform is primarily used for Unit Visualization, effectively solving layout problems for large numbers of discrete elements. Common use cases include:

  • Displaying large numbers of discrete elements in limited space: such as scatter plots with dense data points that need to avoid overlap
  • Distribution display of categorical data: visualizations that highlight quantity differences between categories, such as demographic analysis

For example, the following case shows the distribution of Titanic passengers by cabin class and survival status. Through the pack transform, each passenger point is arranged in an orderly manner, clearly showing the quantity distribution of each category.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart.options({
type: 'facetRect',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/titanic.json',
transform: [
{ type: 'sortBy', fields: ['survived'] },
{
type: 'map',
callback: ({ survived, ...d }) => ({
...d,
survived: survived + '',
}),
},
],
},
encode: { x: 'pclass' },
children: [
{
type: 'point',
encode: { color: 'survived', shape: 'point', size: 3 },
transform: [{ type: 'pack' }],
legend: {
color: { labelFormatter: (d) => (d === '1' ? 'Yes' : 'No') },
},
tooltip: { title: '', items: ['pclass', 'survived'] },
},
],
});
chart.render();

For more examples, you can check the Unit Visualization page.

Configuration Options

PropertyDescriptionTypeDefaultRequired
paddingSpacing between each element, in pixelsnumber0
directionStacking direction of elementsrow | colcol

padding

padding controls the spacing between each element, measured in pixels. Increasing the padding value creates more visible separation between elements. When the value is 0, elements are arranged closely together.

direction

direction determines the stacking direction of elements in the grid:

  • col: Column (vertical) stacking
  • row: Row (horizontal) stacking

By adjusting direction, you can change the layout direction of data points in the chart to suit different reading preferences and data characteristics.

Examples

The following case shows the distribution of Titanic passengers by gender and survival status. By configuring the padding and direction parameters of the pack transform, the results are more intuitive.

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
});
chart.options({
type: 'facetRect',
autoFit: true,
shareData: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/titanic.json',
transform: [
{ type: 'sortBy', fields: ['survived'] },
{
type: 'map',
callback: ({ survived, ...d }) => ({
...d,
survived: survived + '',
}),
},
],
},
encode: { x: 'sex' },
children: [
{
type: 'point',
encode: { color: 'survived', shape: 'point', size: 3 },
transform: [{ type: 'pack', padding: 5, direction: 'row' }],
legend: {
color: { labelFormatter: (d) => (d === '1' ? 'Yes' : 'No') },
},
tooltip: { title: '', items: ['sex', 'survived'] },
},
],
});
chart.render();