9.6 KiB
title | order | redirect_from | |
---|---|---|---|
G6.Graph(cfg) | 0 |
|
Graph is the carrier of G6. All the operations about events, behaviors, items are mounted on the instance of Graph.
// highlight-start
new Graph(cfg: GraphOptions) => Graph
// highlight-end
const graph = new G6.Graph({
container: '',
width: 500,
height: 500,
modes: {
default: ['drag-canvas'],
},
layout: {
type: 'radial',
unitRadius: 50,
center: [500, 300],
},
});
GraphOptions.container
string | HTMLElement required
The DOM container of graph, it can be the id of a DOM element or the an HTML node.
GraphOptions.width
Number optional
The width of the canvas for graph with the unit 'px'.
GraphOptions.height
Number optional
The height of the canvas for graph with the unit 'px'.
GraphOptions.fitView
Boolean optional default: false
Whether to fit the canvas to the view port.
GraphOptions.fitViewPadding
Array | Number optional default: 0
Takes effect only when fitView: true
. It is the padding between canvas and the border of view port.
- It can be a value, e.g. fitViewPadding: 20
, which means the padding to the top, left, right, bottom are the same.
- Or an array, e.g. fitViewPadding: [ 20, 40, 50, 20 ]
, the four values in the array indicate the padding to the top, right, bottom, left respectively.
GraphOptions.fitCenter
Boolean optional default: false
Supported by v3.5.1. Whether to translate the graph to align its center with the canvas. Its priority is lower than fitView
.
GraphOptions.linkCenter
Boolean optional default: false
Whether to connect the edges to nodes' center.
GraphOptions.groupByTypes
Boolean optional default: true
Whether to group the nodes and edges separately. When it is false, all the items (including nodes and edges) are in the same group, and the order/zindex of them are determined according to the order of their generation. When you are using Combo, MUST set groupByTypes
to false
.
GraphOptions.autoPaint
Boolean optional default: true
Whether to paint the graph automatically while item updated or view port changed. In order to enhance the performance, we recommend to turn off antoPaint
when you are doing bulk operation on nodes or edges. This can be refered to setAutoPaint()
.
GraphOptions.modes
Object optional default: {}
The interaction modes of this graph. Please refer to Interaction Mode for detail.
GraphOptions.modes.default
Object optional default: []
The default modes of this graph. Please refer to Default Behavior for detail.
GraphOptions.nodeStateStyles
Object optional default: {}
The node styles on different states, e.g. hover, selected. It is a new feature of G6 3.1.
⚠️ Note: If you are using version 3.1 or below, just change nodeStyle
to nodeStateStyles
and edgeStyle
to edgeStateStyles
and keep the configuration unchanged.
GraphOptions.edgeStateStyles
Object optional default: {}
The edge styles on different states, e.g. hover, selected. It is a new feature of G6 3.1.
GraphOptions.comboStateStyles
Object optional default: {}
The combo styles on different states, e.g. hover, selected. It is a new feature of G6 3.5.
GraphOptions.defaultNode
Object optional default: {}
Default node configurations in global, including type, size, color and so on. Its priority is lower than the configurations in data.
GraphOptions.defaultEdge
Object optional default: {}
Default edge configurations in global, including type, size, color and so on. Its priority is lower than the configurations in data.
GraphOptions.defaultCombo
Object optional default: {}
Default combo configurations in global, including type, size, color and so on. Its priority is lower than the configurations in data. It is a new feature of G6 3.5.
GraphOptions.plugins
_Array _ optional default: []
Plugins for graph. Please refer to Plugin for detail.
GraphOptions.animate
_Boolean _ optional default: false
Wheter activate the global animation. Which will take effect while changing layouts, changing data, and other global operations.
GraphOptions.animateCfg
Object optional default: {}
The configurations for global animation. Takes effect only when animate: true
. For more detail about animateCfg, see Basic Animation Docs.
GraphOptions.animateCfg.onFrame
Function optional default: null
The callback function for every frame of animation. The path of custom animation for node can be defined here. The nodes will move linearly when onFrame
is null.
GraphOptions.animateCfg.duration
Number optional default: 500
Duration of animation with unit millisecond.
GraphOptions.animateCfg.easing
string optional default: easeLinear
The easing function name of animation. Please refer to ease in d3.
GraphOptions.minZoom
Number optional default: 0.02
The minimum zoom ratio. If the ratio to be scaled in fitView
, zoom
, or zoomTo
is smaller than the minZoom, the minZoom will take effect and the current funcion will return false.
GraphOptions.maxZoom
Number optional default: 10
The maximum zoom ratio. If the ratio to be scaled in fitView
, zoom
, or zoomTo
is bigger than the maxZoom, the maxZoom will take effect and the current funcion will return false.
GraphOptions.layout
Object optional default: {}
Configurations for layout. The type
in it is the name of layout method with the options: 'random'
, 'radial'
, 'mds'
, 'circular'
, 'fruchterman'
, 'force'
, 'dagre'
, 'concentric'
, 'grid'
. When layout
is not assigned on graph:
- If there are
x
andy
in node data, the graph will render with these information; - If there is no positions information in node data, the graph will arrange nodes with Random Layout by default.
For more configurations for different layout methods, please refer to Layout API.
GraphOptions.layout.pipes
Sublayout Pipeline Supports by v4.3.0 and latter versions
Sublayout pipeline supports several sublayouts on different subgraphs by configuring GraphOptions.layout
.
You can configure layout.pipes
array when initializing the graph instance. Each item in the array is a sublayout pipe, and it contains the infomation about the layout type(type
), configurations for this layout type, and node filtering function (nodesFilter
). NOTICE that, if some nodes belong to several sublayouts in the same time, the result positions of these nodes will follow the last sublayout.
The format of the layout.pipes
:
type Pipes =
{
// the name of the layout method for this subgraph
type: 'random' | 'radial' | 'mds' | 'circular' | 'fruchterman' | 'force' | 'gForce' | 'dagre' | 'concentric' | 'grid' | 'forceAtlas2',
// node filtering function, the parameter is the node data, and it returns a boolean to indicate if the node belongs to this subgraph
nodesFilter: (node: NodeData) => boolean;
... // the configurations for this layout method, refer to the docs for different layout method pls
}[];
Usage demo:
// configure the layout.pipes when initializing the graph instance
const graph = new G6.Graph({
// ... // other graph configurations
layout: {
pipes: [
{
// the name of the layout method for this subgraph
type: 'circular',
// indicate if the node belongs to the subgraph
nodesFilter: (node) => node.subGraphId === '1',
// ... other configurations for this layout method
},
{
type: 'grid',
nodesFilter: (node) => node.subGraphId === '2',
// other configurations for this layout method
begin: [100, 0],
}
]
},
});
GraphOptions.renderer
_'canvas' / 'svg' _ optional default: 'canvas'
Render the graph with Canvas or SVG. It is supported expecting V3.3.x.
GraphOptions.enabledStack
boolean optional default: false
Whether to enable stack,that is, whether to support redo & undo operation. Support by V3.6 and latter versions.
GraphOptions.maxStep
number optional default: 10
The max step number of redo & undo, works only when the enabledStack
is true
. Support by V3.6 and latter versions.