G6 可解析 json 格式的数据。以下键名在 G6 中有特定含义,用户在设置自有数据时应避免使用 。用以下格式传入数据:
Graph
{
nodes:[],
edges:[],
groups: [],
guides: []
}
节点的数据模型
对所有图形有效
{
id: 'node1', // id 必须唯一
shape: 'circle', // 所用图形
parent: 'group1', // 所属组
index: 1 // 渲染层级
}
仅对默认注册图形有效
{
color: '#333', // 颜色
size: 10 || [10, 10], // 尺寸 || [宽, 高]
style: { // 关键形样式(优先级高于color)
fill: 'red',
stroke: 'blue'
},
label: '文本标签' || { // 文本标签 || 文本图形配置
text: '文本标签',
fill: 'green'
},
labelOffsetX, // 文本标签 x 坐标偏移
labelOffsetY, // 文本标签 y 坐标偏移
}
边的数据模型
对所有图形有效
{
id: 'edge1', // id 必须唯一
source: 'node1', // 源节点 id
target: 'node2', // 目标节点 id
controlPoints: [{ // 控制点
x: 10,
y: 10
}],
sourceAnchor: 0, // 源节点锚点
targetAnchor: 2, // 目标节点锚点
shape: 'line', // 所用图形
index: 1 // 渲染层级
}
仅对默认注册图形有效
{
color: 'red', // 颜色
size: 3, // 尺寸
style: { // 关键形样式(优先级高于color)
fill: 'red',
stroke: 'blue'
},
label: '文本标签' || { // 文本标签 || 文本图形配置
text: '文本标签',
fill: 'green'
},
labelRectStyle: { // 文本标签背景样式
fill: 'red'
},
labelOffsetX, // 文本标签 x 坐标偏移
labelOffsetY, // 文本标签 y 坐标偏移
}
群组的数据模型
对所有图形有效
{
id: 'group1', // id 必须唯一
shape: 'rect', // 所用图形
parent: 'group2', // 所属组
index: 1 // 渲染层级
}
仅对默认注册图形有效
{
color: '#333', // 颜色
size: 10 || [10, 10], // 尺寸 || [宽, 高]
style: { // 关键形样式(优先级高于color)
fill: 'red',
stroke: 'blue'
},
label: '文本标签' || { // 文本标签 || 文本图形配置
text: '文本标签',
fill: 'green'
},
labelOffsetX, // 文本标签 x 坐标偏移
labelOffsetY, // 文本标签 y 坐标偏移
}
导入数据
const data = {
nodes: [{
id: 'node1',
x: 100,
y: 200
},{
id: 'node2',
x: 300,
y: 200
}],
edges: [{
id: 'edge1',
target: 'node2',
source: 'node1'
}]
};
const graph = new G6.Graph({
container: 'mountNode',
width: 500,
height: 500
});
graph.read(data);
Tree
对所有图形有效
{
roots: [
{
id: 'root', // 根节点 id
shape: 'circle', // 图形
parent: 'parentId', // 父节点 id
collapsed: false, // 是否折叠
index: 1, // 渲染层级
children: [{ // 子元素集 (子元素数据模型和根节点同构)
id: 'leaf',
}],
}
]
}
仅对默认注册图形有效
{
roots: [
{
color: '#333', // 颜色
size: 10 || [10, 10], // 尺寸 || [宽, 高]
style: { // 样式 (优先级高于 color)
fill: 'red',
stroke: 'blue'
},
label: '文本标签' || { // 文本标签 || 文本图形配置
text: '文本标签',
fill: 'green'
},
labelOffsetX, // 文本标签 x 坐标偏移
labelOffsetY, // 文本标签 y 坐标偏移
}
]
}