G6.Graph(cfg)
Graph is the carrier of G6. All the operations about events, behaviors, items are mounted on the instance of Graph.
new Graph(cfg: GraphOptions) => Graph
const graph = new G6.Graph({
container: '',
width: 500,
height: 500,
modes: {
default: ['drag-canvas'],
},
layout: {
type: 'radial',
unitRadius: 50,
center: [500, 300],
},
});
GraphOptions.container
The DOM container of graph, it can be the id of a DOM element or the an HTML node.
GraphOptions.width
The width of the canvas for graph with the unit 'px'.
GraphOptions.height
The height of the canvas for graph with the unit 'px'.
GraphOptions.fitView
false
Whether to fit the canvas to the view port.
GraphOptions.fitViewPadding
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
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
false
Whether to connect the edges to nodes' center.
GraphOptions.groupByTypes
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
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
{}
The interaction modes of this graph. Please refer to Interaction Mode for detail.
GraphOptions.modes.default
[]
The default modes of this graph. Please refer to Default Behavior for detail.
GraphOptions.nodeStateStyles
{}
The node styles on different states, e.g. hover, selected. It is a new feature of G6 3.1.
nodeStyle
to nodeStateStyles
and edgeStyle
to edgeStateStyles
and keep the configuration unchanged.GraphOptions.edgeStateStyles
{}
The edge styles on different states, e.g. hover, selected. It is a new feature of G6 3.1.
GraphOptions.comboStateStyles
{}
The combo styles on different states, e.g. hover, selected. It is a new feature of G6 3.5.
GraphOptions.defaultNode
{}
Default node configurations in global, including type, size, color and so on. Its priority is lower than the configurations in data.
GraphOptions.defaultEdge
{}
Default edge configurations in global, including type, size, color and so on. Its priority is lower than the configurations in data.
GraphOptions.defaultCombo
{}
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
[]
Plugins for graph. Please refer to Plugin for detail.
GraphOptions.animate
false
Wheter activate the global animation. Which will take effect while changing layouts, changing data, and other global operations.
GraphOptions.animateCfg
{}
The configurations for global animation. Takes effect only when animate: true
. For more detail about animateCfg, see Basic Animation Docs.
GraphOptions.animateCfg.onFrame
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
500
Duration of animation with unit millisecond.
GraphOptions.animateCfg.easing
easeLinear
The easing function name of animation. Please refer to ease in d3.
GraphOptions.minZoom
0.2
The minimum zoom ratio.
GraphOptions.maxZoom
10
The maximum zoom ratio.
GraphOptions.layout
{}
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'
Render the graph with Canvas or SVG. It is supported expecting V3.3.x.
GraphOptions.enabledStack
false
Whether to enable stack,that is, whether to support redo & undo operation. Support by V3.6 and latter versions.
GraphOptions.maxStep
10
The max step number of redo & undo, works only when the enabledStack
is true
. Support by V3.6 and latter versions.