考虑以下图表(以下代码在SO代码段中不起作用,请参见equivalent Codepen.io)
Highcharts.chart('container', {
series: [{
keys: ['from', 'to', 'weight'],
data: [
['start', 'hello', 70],
['start', 'world', 20],
['start', 'yuhu', 10],
['hello', 'aaa', 49],
['hello', 'bbb', 21],
['bbb', 'OK', 21],
['world', 'OK', 30],
// up to now everything is OK
// yuhu and aaa should be at the same level as OK
['yuhu', 'KO', 10],
['aaa', 'KO', 49]
],
type: 'sankey',
}]
});
<script src="https://code.highcharts.com/modules/sankey.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container"></div>
如果注释掉data
的最后两个元素,则该图很好。我想将yuhu
和aaa
与OK
在同一垂直“层”合并。
通过测试,我发现合并时在当前层之后立即设置了下一个“层”。
在我的情况下,yuhu
和aaa
位于不同的“层”上,它们不能干净地合并。 一种解决方案是让yuhu
扩展或跳过一个“层” (并且与aaa
处于同一级别,即在预期的着陆“层”之前一个“层” )。
这有可能实现吗?
答案 0 :(得分:2)
通常,您可以使用https://codepen.io/anon/pen/OErjZg选项控制在其上呈现节点的列:nodes
:
Highcharts.chart('container', {
series: [{
keys: ['from', 'to', 'weight'],
nodes: [{
id: 'KO',
column: 3
}],
data: [
['start', 'hello', 70],
['start', 'world', 20],
['start', 'yuhu', 10],
['hello', 'aaa', 49],
['hello', 'bbb', 21],
['bbb', 'OK', 21],
['world', 'OK', 30],
// up to now everything is OK
// yuhu and aaa should be at the same level as OK
['yuhu', 'KO', 10],
['aaa', 'KO', 49]
],
type: 'sankey',
}]
});