echarts 桑基图 节点重复报错
一般数据格式是这样的,但是name重复的话,图表就会报错,所以要保证name不会重复,
有些特殊情况需要重复节点出现。
例如:
node: [
{
name: 'a'
},
{
name: 'b'
},
{
name: 'a1'
},
{
name: 'a2'
},
{
name: 'b1'
},
{
name: 'c'
}
],
links: [
{
source: 'a',
target: 'a1',
value: 5
},
{
source: 'a',
target: 'a2',
value: 3
},
{
source: 'b',
target: 'b1',
value: 8
},
{
source: 'a',
target: 'b1',
value: 3
},
{
source: 'b1',
target: 'a1',
value: 1
},
{
source: 'b1',
target: 'c',
value: 2
}
]
解决方案:
加上一个id,用id进行匹配,新的结构:结果如下图1-1
node: [
{
name: 'a',
id: 1,
},
{
name: 'b',
id: 2
},
{
name: 'a1',
id: 3
},
{
name: 'a2',
id: 4
},
{
name: 'b1',
id: 5
},
{
name: 'a',
id: 6
}
],
links: [
{
source: '1',
target: '3',
value: 5
},
{
source: '1',
target: '4',
value: 3
},
{
source: '2',
target: '3',
value: 8
},
{
source: '1',
target: '5',
value: 3
},
{
source: '5',
target: '3',
value: 1
},
{
source: '5',
target: '6',
value: 2
}
],
label: {
normal: {
show: true, // 显示标签
position: '', // 标签位置
formatter: function(node) {
// 自定义标签内容
return node.data.name ;
}
}
},
图1-1
小结
在使用桑基图时,data出现name和id时,会优先使用id,name此时是无效的,可以通过label进行展示数据。## 标题