Echarts桑葚图(sankey)怎么修改展示布局

457 阅读1分钟

背景

最近有研发伙伴,提出了一个研发问题,在使用echarts制作桑葚图时,怎么修改布局,使左右两边均匀排列。

官方例子:echarts.apache.org/examples/zh… image.png

过程

  1. 首先,通过查阅echarts的series-sankey文档,了解到一个比较能影响布局的属性series-sankey.nodeGap。通过修改nodeGap能够修改间隔,但是没办法实现想要的功能。

  2. 这时,发现桑葚图是可以移动的(draggable:默认值是true),那么,移动后的属性是否有记录?如果有数据记录,是否就可以分析响应属性。

  3. 在示例追加以下代码,移动色块并点击色块,看输出结果

myChart.on('click',(params) => {
  console.log(params)
})

image.png

  1. 点击色块后,看到输出结果如图

image.png

  1. 可以看出,echarts的series-sankey.data存在localX跟localY属性,但是相应的api文档并没有标明,通过编辑该属性实现所需的布局。

总结

这个解决方案可以看出,echarts会有一些api并没有暴露,所以有些需要靠结果去反推属性。