图相关
diagram.arc 弧长链接图
弧长链接图(Arc Diagram)可以变形为和弦图(Chord Diagram)。
alias: arc
具体用法见示例:
dv.transform({
type: 'diagram.arc',
y: 0,
thickness: 0.05, // 节点高度,区间 (0, 1)
weight: false, // 是否带权重,无权重为弧长链接图,带权重为和弦图
marginRatio: 0.1, // 空隙比例,区间[0, 1)
id: node => node.id, // 获取节点id
source: edge => edge.source, // 获取边起始点id
target: edge => edge.target, // 获取边结束点id
sourceWeight: edge => edge.value, // 获取边起始点权重
targetWeight: edge => edge.value1, // 获取边结束点权重
sortBy: null, // 排序,可以按照id,权重('weight')或者边数量('frequency')排序,也可以自定排序函数
});
注意!这个 Transform 做完之后,有两部分数据(顶点和边数据),G2 在使用是不能直接通过 chart.source(dv) 来导入数据,只能分别导入顶点和边集合,例如:
const nodeView = chart.view();
nodeView.source(dv.nodes);
const edgeView = chart.view();
edgeView.source(dv.edges);
diagram.sankey 桑基图
alias: sankey
具体用法见示例:
dv.transform({
type: 'diagram.sankey',
value: node => node.value, // 权重
source: edge => edge.source, // 边起点id
target: edge => edge.target, // 边终点id
nodeAlign: 'sankeyJustify', // sankeyLeft / sankeyRight / sankeyCenter
nodeWidth: 0.02, // 节点宽,范围:(0, 1)
nodePadding: 0.02, // 节点上下间距,范围:(0, 1)
});
注意!这个 Transform 做完后同样需要注意上述 arc transform 一样的数据导入问题
diagram.voronoi
voronoi 图
alias: voronoi
具体用法见示例:
dv.transform({
type: 'diagram.voronoi',
fields: ['field0', 'field1'], // 对应坐标轴上的一个点
extend: [
[x0, y0],
[x1, y1],
], // 范围
size: [width, height], // 范围
as: ['x', 'y'], // 每个点包围多边形的顶点集
// x: [ x0, x1, x2, ... ], y: [ y0, y1, y2, ... ]
});