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