Events
Previous
classicDark
Next
Color Mapping
Loading...
G2 exposes various events to capture chart lifecycle and interaction information. G2 exports a ChartEvent type that defines the event types.
import { Chart, ChartEvent } from '@antv/g2';const chart = new Chart({container,canvas,});chart.data([{ genre: 'Sports', sold: 275 },{ genre: 'Strategy', sold: 115 },{ genre: 'Action', sold: 120 },{ genre: 'Shooter', sold: 350 },{ genre: 'Other', sold: 150 },]);chart.interval().encode('x', 'genre').encode('y', 'sold').encode('color', 'genre').axis({ x: { animate: false }, y: { animate: false } });chart.on('interval:click', (e) => {console.log(e.data.data); // Display clicked data});chart.on('element:click', (e) => {console.log(e.data.data); // Display clicked data});chart.render();
To capture chart lifecycle information, you can use the following approach:
chart.on(ChartEvent.AFTER_RENDER, (ev) => {console.log(ev);});
G2 currently provides the following lifecycle events:
| Event Name | Description |
|---|---|
ChartEvent.BEFORE_RENDER | Before rendering |
ChartEvent.BEFORE_PAINT | Before painting |
ChartEvent.AFTER_PAINT | After painting |
ChartEvent.AFTER_RENDER | After rendering |
ChartEvent.BEFORE_CHANGE_DATA | Before data change |
ChartEvent.AFTER_CHANGE_DATA | After data change |
ChartEvent.BEFORE_CLEAR | Before clearing canvas |
ChartEvent.AFTER_CLEAR | After clearing canvas |
ChartEvent.BEFORE_DESTROY | Before destroying canvas |
ChartEvent.AFTER_DESTROY | After destroying canvas |
ChartEvent.BEFORE_CHANGE_SIZE | Before changing canvas size |
ChartEvent.AFTER_CHANGE_SIZE | After changing canvas size |
To capture chart interaction information, you can use the following approaches:
element eventschart.on(`element:${ChartEvent.EventType}`, (ev) => {console.log(ev);});
element eventschart.on(`${markType}:${ChartEvent.EventType}`, (ev) => {console.log(ev);});// For example, listen to click events on bars in a bar chartchart.on(`interval:${ChartEvent.CLICK}`, (ev) => {console.log(ev);});
chart.on('plot:click', (event) => console.log(event));
chart.on('component:click', (event) => console.log(event));
chart.on('label:click', (event) => console.log(event));
| Event Name | Description | Callback Parameters |
|---|---|---|
ChartEvent.CLICK | Click | Event |
ChartEvent.DBLCLICK | Double click | Event |
| Event Name | Description | Callback Parameters |
|---|---|---|
ChartEvent.POINTER_TAP | Event | |
ChartEvent.POINTER_DOWN | When pointer is pressed down | Event |
ChartEvent.POINTER_UP | When pointer is released | Event |
ChartEvent.POINTER_OVER | When pointer enters the target element | Event |
ChartEvent.POINTER_OUT | When pointer leaves the target element | Event |
ChartEvent.POINTER_MOVE | When pointer coordinates change | Event |
ChartEvent.POINTER_ENTER | When pointer enters the target element or its descendants | Event |
ChartEvent.POINTER_LEAVE | When pointer leaves the target element or its descendants | Event |
ChartEvent.POINTER_UPOUTSIDE | Event |
To listen to drag events, you need to set the draggable and droppable properties:
chart.interval().style('draggable', true).style('droppable', true);
| Event Name | Description | Callback Parameters |
|---|---|---|
ChartEvent.DRAG_START | When dragging starts | Event |
ChartEvent.DRAG | During dragging | Event |
ChartEvent.DRAG_END | When dragging ends | Event |
ChartEvent.DRAG_ENTER | When element is dragged into the target element | Event |
ChartEvent.DRAG_LEAVE | When element is dragged away from the target element | Event |
ChartEvent.DRAG_OVER | When element is dragged and hovering over target element | Event |
ChartEvent.DROP | When element is dropped into the target element | Event |
For detailed examples, see Interaction - Events Examples