如何正确更新 Highcharts Sankey 上的节点?
How to properly update the nodes on a Highcharts Sankey?
我正在尝试构建一个切换开关以在 Highcharts Sankey 图表上的两个不同数据集之间切换。数据或多或少地正确更新,但是节点不会在每个 chart.update() 上被破坏,因此新的节点集在旧集的顶部重新绘制。
这是代码的更新部分:
$('#yearToggle').click(function() {
if (mySankey.title.textStr == 'Tomorrow') {
myData = myData2;
myNodes = myNodes2;
myYear = 'Today'
} else {
myData = myData1;
myNodes = myNodes1;
myYear = 'Tomorrow'
};
mySankey.update({
series: {
data: myData,
nodes: myNodes
},
title: {
text: myYear
}
});
});
我确信有更优雅的方法来处理切换点击部分,但我主要关心的是系列中节点对象的正确更新。任何帮助将不胜感激。
这是完整的 fiddle:http://jsfiddle.net/j7kwrctn/3/
编辑:这是我更新的 fiddle,它在更新数据之前在节点上使用 .destroy()。这行得通,但并不理想,因为这意味着没有流畅的动画,这对于显示发生了多少变化非常有帮助:http://jsfiddle.net/0ex7rpfh/2/
这是一个与 Sankey 系列类型相关的错误,报告在这里:https://github.com/highcharts/highcharts/issues/8682
目前这个问题已经修复,所以你只需要直接从 GitHub master
分支导入 Highcharts 版本,通过更改链接:
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/sankey.js"></script>
至:
<script src="https://github.highcharts.com/highcharts.js"></script>
<script src="https://github.highcharts.com/modules/sankey.js"></script>
我正在尝试构建一个切换开关以在 Highcharts Sankey 图表上的两个不同数据集之间切换。数据或多或少地正确更新,但是节点不会在每个 chart.update() 上被破坏,因此新的节点集在旧集的顶部重新绘制。
这是代码的更新部分:
$('#yearToggle').click(function() {
if (mySankey.title.textStr == 'Tomorrow') {
myData = myData2;
myNodes = myNodes2;
myYear = 'Today'
} else {
myData = myData1;
myNodes = myNodes1;
myYear = 'Tomorrow'
};
mySankey.update({
series: {
data: myData,
nodes: myNodes
},
title: {
text: myYear
}
});
});
我确信有更优雅的方法来处理切换点击部分,但我主要关心的是系列中节点对象的正确更新。任何帮助将不胜感激。
这是完整的 fiddle:http://jsfiddle.net/j7kwrctn/3/
编辑:这是我更新的 fiddle,它在更新数据之前在节点上使用 .destroy()。这行得通,但并不理想,因为这意味着没有流畅的动画,这对于显示发生了多少变化非常有帮助:http://jsfiddle.net/0ex7rpfh/2/
这是一个与 Sankey 系列类型相关的错误,报告在这里:https://github.com/highcharts/highcharts/issues/8682
目前这个问题已经修复,所以你只需要直接从 GitHub master
分支导入 Highcharts 版本,通过更改链接:
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/sankey.js"></script>
至:
<script src="https://github.highcharts.com/highcharts.js"></script>
<script src="https://github.highcharts.com/modules/sankey.js"></script>